oracle建数据库实例
❶ Oracle新建数据库
Oracle新建数据库可以参考以下操作方法:
1、首先点击桌面左下角的开始图标;
❷ 简单!oracle建立的数据库实例是什么样子的
实例可以理解为一个库的运行实体。
oracle和access不同,不能直接通过访问文件来读取数据,一般可以通过sql
plus来访问数据库的实例。
❸ Oracle实例如何创建
除非使用并行Oracle服务器选项,否则每个Oracle数据库都有一个实例与之相关,一个数据库被唯一的一个实例装载。实例结构允许RDBMS同时对来自多个用户的不同种类事务的请求提供服务,与此同时提供一流的性能、容错性、数据的一致性和安全性。 值得注意的是,这里定义的术语“进程”是指在没有用户干预的情况下正在运行的任务。你的操作系统可能将之称作“进程”,或者使用其他术语,例如任务、作业、线程和其他类似的术语。 在UNIX实现多任务操作系统后,实例是松散的结构方式。在一起工作的离散的进程在实现实例的目标的RDBMS中完成指定的任务。每一个进程都有各自的一个内存块,该内存块用于保存私有变量、地址堆栈和其他运行时的信息。进程间使用公共共享区并在公共共享区内完成它们的工作。公共共享区是能够在同一时间内被不同程序和不同进程读写的一块内存区。该内存块称为系统全局区(SGA)。因为SGA驻留在一个共享内存段中,所以它经常被称作共享全局区。 你可以认为后台进程就像数据库的手,直接处理数据库的组件;你也可以认为SGA就像大脑,在必要时间接地调度手处理它们的信息与存储检索。SGA参与发生在数据库中全部的信息和服务器的处理。单用户的Oracle配置(例如PersonalOracleLite),不使用多进程执行数据库的功能。相反,所有的数据库功能由一个Oracle进程完成。由于这个原因,单用户也称为单进程Oracle。 1)创建一个Oracle实例(非安装阶段)。 2)由实例安装数据库(安装阶段)。 3)打开数据库(打开阶段)。 Oracle实例在数据库启动的非安装阶段创建,当数据库经过非安装阶段,读取init.ora参数文件,启动后台进程,初始化系统全局区(SGA)。init.ora文件定义了实例的配置,包括内存结构的大小和启动后台进程的数量和类型等。实例名根据环境变量OracleSID设置,它不一定要与打开的数据库名称相同(但是习惯上通常如此)。 下一阶段称为安装阶段。init.ora文件中的控制文件参数值决定数据库的安装实例。在安装阶段,读取控制文件并使其成为可访问的,可以对控制文件内存储的数据进行查询和修改。 最后的阶段就是打开数据库。在这一阶段,其名字存储在控制文件中的数据库文件以排它使用方式被实例锁定,使数据库能够被普通用户访问。打开是数据库的正常操作状态。在数据库打开之前,只有DBA能访问数据库,且只能通过服务器管理器对其进行访问。 为了改变数据库的操作状态,必须作为内部连接到数据库,或拥有SYSDBA特权。当数据库从关闭状态到打开状态时,你可以明确地单步调试数据库的每一个操作状态,但当关闭数据库时,只能从当前运行状态转到完全关闭状态。例如,可以在服务器管理器工具中执行STARTUP NOMOUNT命令,这将使数据库处在非安装阶段,接下来可以运行ALTER DATABASE MOUNT或者运行ALTER DATABASE OPEN命令以单步调试到操作阶段。无论是在何种操作状态下,如果执行SHUTDOWN命令,将完全关闭数据库。例如,数据库不能从打开状态转到安装状态。 没有安装数据库的实例被称为空闲的—它使用内存,但不做任何工作。一个实例只能唯一地与一个数据库连接源码天空 ,而且除非使用并行服务器,否则对一个数据库也只分配一个实例。实例是数据管理的核心—它做所有的工作,而数据库存储所有的数据。
❹ oracle11g怎么建立实例数据库
操作顺序如下:
1.创建实例启动用的参数文件。在程序默认的参数文件里修改即可:重命名规则 initSID.ora
/u01/oracle/proct/11.2.0/db_1/dbs/ 下,目录尽量使用绝对路径,采用ORACLE_BASE等环境变量有可能报错。
例 initcrm.ora
db_name='crm' --修改
#memory_target=500m --注释掉
sga_target=200m --添加
pga_aggregate_target=60m --添加
processes = 150
audit_file_dest='/u01/oracle/admin/crm/amp' --建立目录
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/u01/oracle/flash_recovery_area' --建立目录
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/oracle' ---修改
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
2.创建相应目录:
mkdir -p /u01/oracle/admin/ora11g/amp
mkdir -p /u01/oracle/admin/ora11g/dpmp
mkdir -p /u01/oracle/flash_recovery_area
3.创建密码文件:命名规则 orapwSID,目录依旧是 /u01/oracle/proct/11.2.0/db_1/dbs/
linux下orapw+实例名
Windows下pwd+实例名
$ orapwd file=orapwora11g password=oracle
4.创建数据库实例
设置环境变量 export ORACLE_SID=crm
执行以下命令
sqlplus /nolog
conn / as sysdba
注意:本处可能报错需要可能的原因: a)glibc-devel-2.5-58.el5_6.4、lio-0.3.106-5包是否已安装,命令分别为rpm -q glibc-devel、rpm -q lio
b)oracle目录权限不足或属组不对,chmod 6751 oracle 授权、chown -R oracle.oinstall /u01/oracle 修改属组
执行建库脚本:
startup nomount pfile="/u01/oracle/proct/11.2.0.1/db1/dbs/initcrm.ora";
CREATE DATABASE "crm"
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE '/u01/oracle/oradata/system01.dbf' SIZE 1024M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u01/oracle/oradata/sysaux01.dbf' SIZE 500M REUSE
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/u01/oracle/oradata/temp01.dbf' SIZE 20M REUSE
SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE '/u01/oracle/oradata/undo01.dbf' SIZE 300M REUSE
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('/u01/oracle/oradata/log01.dbf') SIZE 50M,
GROUP 2 ('/u01/oracle/oradata/log02.dbf') SIZE 50M,
GROUP 3 ('/u01/oracle/oradata/log03.dbf') SIZE 50M;
创建USERS表空间
CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE '/u01/app/oradata/user01.dbf' SIZE 1000M REUSE EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
ALTER DATABASE DEFAULT TABLESPACE "USERS";
------------------------------------------
SQL> create spfile from pfile;
File created.
-----------------------------------------
sqlplus / as sysdba
SQL> show user;
@/u01/oracle/proct/11.2.0.1/db1/rdbms/admin/catalog.sql;
@/u01/oracle/proct/11.2.0.1/db1/rdbms/admin/catblock.sql;
@/u01/oracle/proct/11.2.0.1/db1/rdbms/admin/catproc.sql;
@/u01/oracle/proct/11.2.0.1/db1/rdbms/admin/catoctk.sql;
@/u01/oracle/proct/11.2.0.1/db1/rdbms/admin/owminst.plb;
使用system用户编译
@/u01/oracle/proct/11.2.0.1/db1/sqlplus/admin/pupbld.sql;
@/u01/oracle/proct/11.2.0.1/db1/sqlplus/admin/help/hlpbld.sql helpus.sql;
使用sys用户编译
@/u01/oracle/proct/11.2.0.1/db1/javavm/install/initjvm.sql;
@/u01/oracle/proct/11.2.0.1/db1/xdk/admin/initxml.sql;
@/u01/oracle/proct/11.2.0.1/db1/xdk/admin/xmlja.sql;
@/u01/oracle/proct/11.2.0.1/db1/rdbms/admin/catjava.sql;
@/u01/oracle/proct/11.2.0.1/db1/rdbms/admin/catexf.sql;
@/u01/oracle/proct/11.2.0.1/db1/rdbms/admin/catqm.sql change_on_install SYSAUX TEMP YES;
@/u01/oracle/proct/11.2.0.1/db1/rdbms/admin/catxdbj.sql;
@/u01/oracle/proct/11.2.0.1/db1/rdbms/admin/catrul.sql;
spool /oracle/admin/edidb/scripts/ordinst.log append
@/u01/oracle/proct/11.2.0.1/db1/ord/admin/ordinst.sql SYSAUX SYSAUX;
spool off
spool /u01/oracle/admin/ora11g/scripts/interMedia.log append
@/u01/oracle/proct/11.2.0.1/db1/ord/im/admin/iminst.sql;
spool off
set echo on
spool /oracle/admin/edidb/scripts/lockAccount.log append
BEGIN
FOR item IN ( SELECT USERNAME FROM DBA_USERS WHERE ACCOUNT_STATUS IN ('OPEN', 'LOCKED', 'EXPIRED') AND USERNAME NOT IN (
'SYS','SYSTEM') )
LOOP
dbms_output.put_line('Locking and Expiring: ' || item.USERNAME);
execute immediate 'alter user ' ||
sys.dbms_assert.enquote_name(
sys.dbms_assert.schema_name(
item.USERNAME),false) || ' password expire account lock' ;
END LOOP;
END;
/
spool off
到此,数据库实例建立完毕。
❺ oracle为什么创建实例,为何通过实例来访问数据,这样有什么优点吗
实例是一组内存缓冲区和后台进程的集合,用于管理数据库中的文件。用户对数据的所有访问是在实例中的内存结构中进行。
通过实例访问数据的优点有:
数据位于内存中,用户对内存的读写速度远高于对磁盘的读写速度,只要数据还在内存中,用户随后对数据的访问都将在内存中进行;
内存中的数据可以在多个用户之间共享,用户事务在内存中对数据加锁,从而提高了数据访问的并发性。
❻ oracle怎样创建样例数据库
Oracle数据库实例的创建、删除、修改
以SUSE10SP2、Oracle10gR2为例。
本文中的数据库实例这一称谓应该换做数据库更为准确,数据库可以理解为是一个物理的静态概念,主要包括一些物理存在的数据库文件,而数据库实例则是一个动态概念,包括一些内存区域以及若干进程,数据库实例是对数据库进行操作的执行者。(20090714修改)
安装完Oracle数据库系统的安装后,需要创建数据库实例才能真正开始使用Oracle数据库服务。
总结起来,Oracle有三种创建数据库实例的方法。
第一种,最常用也最简单,那就是通过DBCA(Database Configuration Assistant),这是Oralce提供的一个图形界面的数据库实例配置工具,通过它可以创建、删除和修改数据库实例,它的使用也比较简单、易懂,交互式的图形界面操作,非常准确有效的提示与配置,是一个比较方便的创建数据库实例的方式。
按照DBCA给出的提示,很容易创建一个新数据库实例。
在创建数据库的时候,DBCA还提供了两个选项,让你可以根据刚刚设置好的参数生成一个数据库实例模板和一份数据库实例创建脚本。这两个东西是非常好,非常有用的东西,数据库模板由Oracle自己管理维护,已经创建好的数据库实例模板可以在DBCA图形程序新建数据库实例时作为模板来使用,另外在DBCA使用responseFile文件或者命令行参数创建数据库时也需要用到(见后面介绍);数据库创建脚本是一组脚本,包括shell脚本和sql脚本,这些脚本共同实现一个功能,那就是按照你之前在DBCA中设置好的那样创建一个数据库实例(后面也会有介绍),你需要做的只是将这些脚本在你的代码中调用起来。当然,你也可以选择只生成数据库模板或者数据库脚本,而不用去创建一个真的数据库(这通常很费时间)。
Oracle数据库实例的创建、删除、修改
DBCA是一个非常强大的工具,上面看到的只是DBCA最常用的创建一个数据库实例的使用,其实DBCA还提供另外两种使用方法,分别是responseFile和命令行带参调用。
先说DBCA的responseFile使用方法,responseFile这个东东并不陌生,前文讲的Oracle自动安装就是使用responseFile完成的,DBCA的responseFile使用方法和Oracle安装程序的responseFile使用方法基本一致。但DBCA的responseFile的来源只能是Oracle安装包中提供的模板文件,而不能向Oracle安装程序的responseFile一样,先自己record一个,然后再用这个record去指导Oracle的自动安装。从Oracle安装包中获取到DBCA的responseFile模板文件后,你可以根据自己的需要编辑修改该模板文件,以完成对数据库实例的某些参数设置(DBCA图形界面所提供的参数设置,responseFile中都可以设置,而且该responseFile模板文件的注释写的很好,你完全不用担心无法搞定那些繁杂的数据库实例参数设置,赞Oralce一个!)。该模板文件在Oracle安装包中的位置一般在${ORACLE_PACKAGE}/response目录下。
有了responseFile之后,你只需在调用DBCA的时候指定responseFile的位置和另外一些参数:
dbca [-silent|-progressOnly] -responseFile responseFile名称
其中-silent|-progressOnly选项意义和Oracle安装程序命令行参数中的同名选项一样,表示完全字符界面自动安装或者带图形提示界面的半自动化安装。
responseFile名称当然就是responseFile的具体位置了。
但是,有一点不是很好,那就是使用DBCA的responseFile方式创建Oracle数据库实例,需要事先已经存在一个数据库实例模板了,在responseFile中再指定该数据库实例模板名,然后DBCA再依据这个已有的数据库实例模板完成新数据库实例的创建,所以就会有前面讲到的DBCA图形界面创建数据库实例时提供生成数据库实例模板的选项(数据库实例模板也可以从一个已有数据库实例生成),就是在这要用到的。
从上面调用DBCA使用responseFile的命令中,应该已经看到了DBCA是提供一些命令行参数选项的,其实DBCA提供的命令行参数选项远比你想象的强大,甚至可以这么说,所有DBCA图形界面和responseFile能够办到的事,通过DBCA丰富的命令行参数选项都可以办到。你在DBCA图形界面上设置的参数或者在responseFile中指定的参数值都可以通过DBCA的命令行参数选项来进行设置,所以你完全可以只通过DBCA的命令行带参调用来完成一个数据库实例的创建(当然也包括删除、修改数据库实例等所有DBCA图形界面所能提供的功能)。其实,我更愿意这样认为,DBCA的responseFile应用也是一种DBCA命令行带参调用的使用。需要注意的是,当DBCA的命令行参数和responseFile同时设置一个参数时,命令行参数的优先级是比responseFile要高的。另外,使用DBCA命令行带参调用新建数据库实例和使用responseFile新建数据库实例一样,也是需要事先已经存在一个数据库实例模板,才能完成新数据库实例的创建。一份非常详细的DBCA所有命令行参数选项列表,你可以通过执行dbca -help获得。
到现在你可能已经发现,DBCA图形界面、DBCA的responseFile使用以及DBCA的命令行带参调用,其实是三个分别具备完全数据库实例设置功能的工具或者接口,分别对应不同的应用场景,它们可以满足你几乎所有的应用需求(使用这样的工具来帮助构建自己的软件真是非常惬意的一件事情,再赞Oracle一个!)。
第二种是通过脚本(是否称为命令行方式更合适,下文描述的脚本方式其实都是命令行方式的非交互式方法,或者说命令行的自动化方式,但其实所有脚本方式都可以将shell脚本或sql脚本中的shell命令、sqlplus命令拆分出来,手工在shell中或者sqlplus界面中进行交互式的输入执行,这可以称为命令行的手工方式)来完成数据库实例的代码中自动创建。这里说的脚本包括shell脚本和sql脚本,这种方式可以说是最适合与编程结合的,因为这些shell脚本或者sql脚本都可以直接在shell命令中调用执行,所以可以很好与shell编程相结合。而这其实是基于一个非常重要的事实,即Oracle提供了一个交互式的命令行工具sqlplus(类似与DB2的db2cmd),这个工具可以认为是一个Oracle数据库管理工具,通过它可以执行一些Oracle的数据库管理命令,来完成一些数据库管理工作(这当然就包括数据库实例的创建),同时你也可以把它当作一个SQL语句执行器,直接在里边执行你想要执行的SQL语句或者存储过程等,并获取执行结果。并且,更重要的是,sqlplus可以直接在shell命令行中进行非交互式的调用执行(通常是调用执行一段sqlplus语句,或者是一个由一些sqlplus语句组成的sql脚本,我所说的sqlplus语句包括Oracle数据库管理维护命令、SQL语句和存储过程等),这就为在shell编程中使用sqlplus完成数据库实例自动创建工作提供了可能。
shell命令行中非交互式调用sqlplus执行一段sqlplus语句是利用shell编程中重定向命令的一个特性,即分隔符重定向输入。一般用法如下:
command<<任意自定义分隔符
>(换行)内容
>(换行)内容
>自定义分隔符
shell中遇到<<则会自动将下一个单词认作分隔符,并将分隔符后面的文本当作command命令执行的内容传递给command依次全部执行直至遇到下一个分隔符单词才结束。这里的分隔符可以是任意自定义的单词,通常使用EOF,举例:
sqlplus / as sysdba<<EOF
startup nomount;
select * from v$version;
shutdown immediate;
exit;
EOF
这段shell程序调用sqlplus执行了若干sqlplus语句,用来启动数据库实例,查询数据库版本信息,然后关闭数据库实例,退出sqlplus。
shell命令行中非交互式调用sqlplus执行一个sql脚本是利用sqlplus本身提供的命令行参数。在sqlplus界面中可以通过start命令和@命令来执行一个sql脚本,两者功效相同,用法如下:
SQL>start sql脚本绝对路径;
SQL>@sql脚本绝对路径;
而在shell命令行中可以使用@来完成sqlplus对sql脚本的调用执行,举例:
sqlplus / as sysdba @./MySQL.sql
以上命令会调用sqlplus执行当前目录下的MySQL.sql脚本。
使用脚本来完成数据库实例的创建工作,也分为两种情况。
一种是诚如前文所述的那样,在使用DBCA图形工具创建数据库实例的同时生成一份数据库实例创建脚本(包括若干shell脚本和sql脚本),那么你就可以使用这份脚本,在shell中进行调用,完成数据库实例的代码自动创建。使用这份数据库实例创建脚本创建的新数据库实例和原数据库实例是完全一样,当然,你可以将生成的脚本进行修改,以完成你对数据库实例的某些设置,但是请在你对脚本内容已经足够了解,并且知道你自己在干什么的情况下修改脚本,否则你很有可能使用修改后的脚本无法正确创建数据库实例。这种方法中shell脚本对sqlplus的使用,更多的是使用sqlplus来执行一些Oracle生成的sql脚本(这些sql脚本的内容是就是一些sqlplus语句的集合,它们的任务就是完成数据库实例的创建以及设置)。
另一种情况则是不依靠DBCA生成的脚本,完全由自己来编写实现一份shell脚本,在脚本中你可以调用sqlplus执行一段sqlplus语句或者其它一些sql脚本,以完成数据库实例的创建和设置,这完全取决于你的实现;而最常用的用来创建数据库实例的一个方法就是在sqlplus中使用create database语句,create database语句提供了许多丰富的选项和参数设置,确保你能完全创建一个自己所需要的数据库实例。当然,还有一些其它方法可以创建数据库实例,比如调用执行oracle提供某些存储过程等。
至于create database语句的详细介绍可以参考oracle的sql reference。
第三种严格来说不能算作一种创建Oracle数据库实例的方法,它是通过已有的数据库实例为基础来完成新数据库实例的创建的。这种方法是首先通过第一种或者第二种方法来创建好一个数据库实例,然后将该数据库实例的物理文件进行备份,然后直接使用备份的物理文件恢复出一个与原数据库实例完全一样新的数据库实例,所以这种方法需要和第一、二种方法相配合才能使用。这种方法其实已经属于Oracle数据备份与恢复的范畴了,就是Oracle数据备份恢复方式中的物理备份恢复,所以这种方法可以叫做物理恢复法。
简单介绍物理恢复法,首先将一个已经存在数据库实例(最好已关闭)进行物理备份,所谓物理备份其实就是复制该数据库实例所使用的操作系统文件,这些文件主要包括DataFiles、RedoLogs、ControlFiles和UndoFiles(这些文件一般存在于$ORACLE_HOME/oradata目录下),进行数据库实例恢复的时候只需将备份的操作系统文件复制到新的oradata目录下即可,可以直接启动使用恢复后的该数据库实例。不难看出,这种备份恢复是依赖于操作系统平台的。
详细的物理备份和恢复介绍可以参考oracle的backup and recovery basics以及backup and recovery advanced user's guide。
说完了数据库实例的创建,现在来说说数据库实例的删除和修改。其实介绍完了数据库实例的创建,数据库实例的删除和修改就非常简单了。基本和前文数据库实例创建的内容相一致,且比较而言更简单。
数据库实例的删除从上文中数据库实例的创建不难得到,大致有两种方法,DBCA工具和命令行方式。
DBCA工具除了能够用来创建数据库实例,当然也能够用来删除数据库实例了,且同样可以用使用responseFile或者命令行带参调用等方法来完成数据库实例的删除,请参考数据库实例创建部分。
命令行删除数据库实例的方式,严格来讲,是使用一组sqlplus命令来完成数据库实例的删除,这组sqlplus命令可以组织在一个sql脚本中,然后在shell命令行中调用sqlplus程序来执行该sql脚本,或者直接在shell命令行中利用shell程序重定向特性调用sqlplus依次完全执行这组sqlplus命令,再或者使用手工的交互式输入执行,使用方法请参考数据库实例创建部分。
其中涉及到的sqlplus命令参考以下:
SQL>startup restrict mount;
SQL>drop database;
使用sqlplus命令删除数据库实例,必须先以restrict mount方式将数据库实例加载(但不打开),然后使用drop database语句删除该数据库实例。
数据库实例的修改和数据库实例的创建,情况类似,DBCA方式或者命令行方式。只要是DBCA方式能够修改的数据库实例参数,命令行方式也都能办到。
❼ oracle 11g 怎样创建数据库实例
1:创建文件夹
2:创建初始化参数文件
3:创建执行建库脚本
4:设置环境变量
5:
创建实例
6:创建口令文件
7:启动数据库nomount状态
8:执行建库脚本
mydb.sql
(mydb.sql放在e盘目录下)
9:运行脚本创建数据字典试图!
❽ 如何建一个oracle数据库实例
oracle里面有一个自带的软件DBCA(Database
Configuration
Assistant)的,里面可以创建数据库。如果是要用脚本创建的话:ORADIM
-NEW
-SID
SID
-INTPWD
PASSWORD
[-STARTMODE
AUTO|MANUAL]
[-SRVCSTART
SYSTEM|DEMAND]这个语句是用于定义实例的,我不知道你是不是要这个,定义实例之后,要启动实例,即在内存中奖励SGA结构和启动必须要的后台进程,需要一系列参数的设定的。
❾ 如何创建oracle数据库实例
window在创建数据库的向导里面就有创建实例, linux创建完数据库,运行dbca
❿ windows下怎么创建oracle的实例
创建oracle11g 数据库方法:按住键盘上Windows键,打开开始菜单,找到Database Configuration Assitant并打开;
打开数据库配置助手Database Configuration Assitant,单击“下一步”;
选择“创建数据库”,单击“下一步”
选择“一般用途或事务处理”,单击“下一步”;
设置数据库的名称和实例名,两者可设置相同,也可以不同,单击“下一步”
管理选项配置,不勾选配置Enterprise Manager,单击“下一步”;
数据库身份证明,可以为不同的账户分别设置不同的管理口令,也可以为所有账户设置同一口令,单击“下一步”;
数据库文件所在位置,默认存储类型:文件系统,存储位置:使用模版中的数据库文件位置,也可以自己指定存储路径,单击“下一步”;
恢复配置,指定快速恢复区;
数据库内容,根据需要,选择是否添加示例方案,单击“下一步”;
初始化参数,设置内存、字符集等,单击“下一步”;
数据库存储,控制文件、数据文件、重做日志文件位置设置,单击“下一步”;
创建选项,创建数据库,生成脚本,单击“完成”,开始创建数据库。