扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
除非使用并行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命令,将完全关闭数据库。例如,数据库不能从打开状态转到安装状态。 没有安装数据库的实例被称为空闲的—它使用内存,但不做任何工作。一个实例只能唯一地与一个数据库连接源码天空 ,而且除非使用并行服务器,否则对一个数据库也只分配一个实例。实例是数据管理的核心—它做所有的工作,而数据库存储所有的数据。
成都创新互联公司是由多位在大型网络公司、广告设计公司的优秀设计人员和策划人员组成的一个具有丰富经验的团队,其中包括网站策划、网页美工、网站程序员、网页设计师、平面广告设计师、网络营销人员及形象策划。承接:成都做网站、网站设计、网站改版、网页设计制作、网站建设与维护、网络推广、数据库开发,以高性价比制作企业网站、行业门户平台等全方位的服务。
1.查看oracle相关的系统参数
$su - oracle //进入oracle用户模式下
$echo $ORACLE_HOME
$echo $ORACLE_BASE //查看oracle的base目录
2.创建实例配置文件
$cd $ORACLE_HOME
$cd dbs
cp init.ora initcloud.ora (命名规则:initSID.ora)
vim initcloud.ora
3.相关文件创建
0)文件修改完成后,在ORACLE_BASE/admin目录下,创建一个与SID一致的目录cloud
1)在cloud目录下创建:mkdir adump bdump cdump pfile udump
2)在ORACLE_BASE/oradata 目录下创建cloud目录
需要的基本设置已经弄完了,开始创建新的实例
4.添加环境变量参数:
export ORACLE_SID=cloud #可以写到/etc/profile或者~/.bash_profile中
5.创建实例;
sqlplus / as sysdba
startup nomount;
6.测试登录:
1)添加内容到tnsnames.ora
2)sqlplus /nolog
conn 用户名/密码@实例名
从Windows桌面执行“开始”→“程序”→“Oracle - ORACLE_HOME_NAME”→“配置和移置工具”→“Database Configuration Assistant”命令,打开Database Configuration Assistant对话框的欢迎界面,单击该界面中的“下一步”按钮
启用“创建数据库”选项,单击“下一步”按钮,进入“步骤2:数据库模板”界面
启用“一般用途或事务处理”选项,单击“下一步”按钮,进入“步骤3:数据库标识”界面
在“步骤3:数据库标识”界面中设置新数据库的全局数据库名,这里设置为myorcl,而数据库实例名(SID)默认与全局数据库名相同,也为myorcl
设置好口令后,单击“下一步”按钮,进入“步骤6:存储选项”界面,在该界面中启用“文件系统”选项
单击“下一步”按钮,进入“步骤7:数据库文件所在位置”界面。设置好存储位置后,单击“下一步”按钮,进入“步骤8
¤采用默认设置,单击“下一步”按钮,进入“步骤9:数据库内容”界面,该界面中可以对示例方案及定制脚本进行配置。采用默认设置,单击“下一步”按钮,进入“步骤10:初始化参数”界面,该界面中可以对内存、调整大小、字符集和连接模式进行配置。采用默认设置,单击“下一步”按钮,进入“步骤11:安全设置”界面,在该界面中采用默认设置,即启用“保留增强的11g默认安全设置”选项。¤单击“下一步”按钮,进入“步骤 12:自动维护任务”界面,在该界面中选择“启用自动维护任务”选项。
单击“下一步”按钮,进入“步骤13:数据库存储”界面,在该界面中可以指定数据库的存储参数,单击“下一步”按钮,进入“步骤14:创建选项”界面
单击“完成”按钮,在弹出的“确认”对话框中单击“确定”按钮,即可开始新数据库的创建
操作顺序如下:
1.创建实例启动用的参数文件。在程序默认的参数文件里修改即可:重命名规则 initSID.ora
/u01/oracle/product/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/adump' --建立目录
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/adump
mkdir -p /u01/oracle/admin/ora11g/dpdump
mkdir -p /u01/oracle/flash_recovery_area
3.创建密码文件:命名规则 orapwSID,目录依旧是 /u01/oracle/product/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、libaio-0.3.106-5包是否已安装,命令分别为rpm -q glibc-devel、rpm -q libaio
b)oracle目录权限不足或属组不对,chmod 6751 oracle 授权、chown -R oracle.oinstall /u01/oracle 修改属组
执行建库脚本:
startup nomount pfile="/u01/oracle/product/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/product/11.2.0.1/db1/rdbms/admin/catalog.sql;
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catblock.sql;
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catproc.sql;
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catoctk.sql;
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/owminst.plb;
使用system用户编译
@/u01/oracle/product/11.2.0.1/db1/sqlplus/admin/pupbld.sql;
@/u01/oracle/product/11.2.0.1/db1/sqlplus/admin/help/hlpbld.sql helpus.sql;
使用sys用户编译
@/u01/oracle/product/11.2.0.1/db1/javavm/install/initjvm.sql;
@/u01/oracle/product/11.2.0.1/db1/xdk/admin/initxml.sql;
@/u01/oracle/product/11.2.0.1/db1/xdk/admin/xmlja.sql;
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catjava.sql;
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catexf.sql;
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catqm.sql change_on_install SYSAUX TEMP YES;
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catxdbj.sql;
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catrul.sql;
spool /oracle/admin/edidb/scripts/ordinst.log append
@/u01/oracle/product/11.2.0.1/db1/ord/admin/ordinst.sql SYSAUX SYSAUX;
spool off
spool /u01/oracle/admin/ora11g/scripts/interMedia.log append
@/u01/oracle/product/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
到此,数据库实例建立完毕。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流