linux手动创建oracle实例全过程

来源:互联网 发布:js对象深度遍历 编辑:程序博客网 时间:2024/06/01 08:40

先理解几个概念 oracle跟mysql和mssql的不同,提出了实例和表空间等的概念

实例:即一个运行的服务,不含任何物理数据和内容

数据库:依托于实例运行,数据库和实例可以使1对1的关系,也可以是一对多的管理,即可以有不同实例加载数据库,但是一个实例只能加载一个数据库

一个操作系统可以运行多个数据库实例


因此,想要创建一个新的数据库,必须先运行一个实例。

但是oracle有表空间的概念,不同用户可以设置不同表空间的访问权,相当于把数据库划分出多个子模块,供不同用户使用

所以,在一般的情况下,利用表空间和用户控制方式,即可以实现分开独立的数据表管理


创建表空间和用户比较简单,利用plsql即可以实现


创建数据库实例(非图形界面):

//利用crt进入linux操作系统

$su - oracle //进入oracle用户模式下

$echo $ORACLE_HOME  //查看oracle的home目录位置 假如home目录/opt/11g/oracle/product/11.2.0/dbhome_1,那么执行cd $ORACLE_HOME等效于cd /opt/11g/oracle/product/11.2.0/dbhome_1

$echo $ORACLE_BASE  //查看oracle的base目录

 

//创建实例配置文件

$cd $ORACLE_HOME

$cd dbs

$cp initorcl.ora  initvcenter.ora

$vi  initvcenter.ora   

db_name='vcenter'
vcenter.__java_pool_size=402653184
vcenter.__large_pool_size=134217728
vcenter.__oracle_base='/opt/11g/oracle'
vcenter.__pga_aggregate_target=11341398016
vcenter.__sga_target=34024194048
vcenter.__shared_io_pool_size=0
vcenter.__shared_pool_size=7985954816
vcenter.__streams_pool_size=67108864
*.audit_file_dest='/opt/11g/oracle/admin/vcenter/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files = (ora_control3, ora_control4)
*.db_block_size=8192
*.db_domain=''
*.db_name='vcenter'
*.db_recovery_file_dest='/opt/11g/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4385144832
*.diagnostic_dest='/opt/11g/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=YFZD2XDB)'
*.local_listener=''
*.open_cursors=300
*.pga_aggregate_target=11333009408
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=34001125376
*.undo_tablespace='UNDOTBS1'


//创建实例相关目录--作用未理解


$cd $ORACLE_BASE

$cd admin

$mkdir vcenter

$cd vcenter

$mkdir adump  bdump  cdump  pfile  udump

//创建vcenter数据文件

cd /oradata

mkdir vcenter     

//启动实例

$export ORACLE_SID=vcenter

$sqlplus /nolog

sql>conn /as sysdba;

sql>startup nomount;

sql>select instance_name from v$instance;   //正常启动后执行语句可以看到运行的实例


//创建密码文件--作用还未理解

$$ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/orapwvcenter password=Aa123456* force=y  //文件生成在$ORACLE_HOME/dbs目录下


//创建数据库脚本如下,进入到sql界面执行下面语句

sql>

  CREATE DATABASE vcenter
   USER SYS IDENTIFIED BY sys
   USER SYSTEM IDENTIFIED BY manager
   LOGFILE GROUP 1 ('/oradata/vcenter/redo01.log') SIZE 20M,
           GROUP 2 ('/oradata/vcenter/redo02.log') SIZE 20M,
           GROUP 3 ('/oradata/vcenter/redo03.log') SIZE 20M
   MAXLOGFILES 5
   MAXLOGMEMBERS 5
   MAXLOGHISTORY 1
   MAXDATAFILES 100
   MAXINSTANCES 1
   CHARACTER SET US7ASCII
   NATIONAL CHARACTER SET UTF8
   DATAFILE '/oradata/vcenter/system01.dbf' SIZE 325M REUSE
   EXTENT MANAGEMENT LOCAL
   SYSAUX DATAFILE '/oradata/vcenter/sysaux01.dbf' SIZE 325M REUSE
   DEFAULT TABLESPACE tbs_1 datafile '/oradata/vcenter/tbs_1.dbf' size 50m
   DEFAULT TEMPORARY TABLESPACE temp
      TEMPFILE '/oradata/vcenter/temp01.dbf'
      SIZE 20M REUSE
   UNDO TABLESPACE undotbs1
      DATAFILE '/oradata/vcenter/undotbs1.dbf'
      SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

//其中UNDO TABLESPACE undotbs1必须与实例配置文件中的名字完全一样

sql>select status from v$instance;

//status为open表示成功



//运行后续脚本,创建数据字典及相关视图

SQL>conn sys as sysdba

SQL>@?/rdbms/admin/catalog.sql;

//此过程可能需要10分钟左右

SQL>@?/rdbms/admin/catproc.sql;

/此过程可能需要15分钟左右

SQL>@?/rdbms/admin/catblock.sql;

SQL>@?/rdbms/admin/catoctk.sql;

SQL>@?/rdbms/admin/owminst.plb;

SQL>conn system/ manager

SQL>@?/sqlplus/admin/pupbld.sql;

SQL>@?/sqlplus/admin/help/hlpbld.sql helpus.sql

//配置listener.ora和tnsnames.ora,这两个文件在$ORACLE_HOME/network/admin目录下

listener.ora

(SID_LIST=
      (SID_DESC=
         (GLOBAL_DBNAME = vcenter)         
         (ORACLE_HOME = /opt/11g/oracle/product/11.2.0/dbhome_1)
         (SID_NAME = vcenter)
       )
  )

tnsnames.ora
vcenter =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = vcenter)
    )
  )



很多具体细节还不是很明白,以后弄通了再补充!

参考资料:

http://blog.csdn.net/sunchenglu7/article/details/39676659

http://www.linuxidc.com/Linux/2014-08/105552.htm

原创粉丝点击