创建Oracle数据库实例

创建Oracle数据库实例

转自oracle数据库创建实例

数据库已经安装完成,可以正常登陆查看用户等操作。
system用户只能用normal身份登陆em。除非你对它授予了sysdba的系统权限或者syspoer系统权限。
sys用户具有“SYSDBA”或者“SYSOPER”权限,登陆em也只能用这两个身份,不能用normal。
sys所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。
system用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。system用户拥有普通dba角色权限。

一、检查数据库

[root@oracle12c ~]# su – oracle
[oracle@oracle12c ~]$ lsnrctl start
[oracle@oracle12c ~]$ lsnrctl status

二、创建实例
1、首先设置要创建的ORACLE的SID

 [oracle@oracle12c ~]$ export ORACLE_SID=addb

2、创建相应目录
可参考博客ORACLE_BASE、ORACLE_HOME有什么区别

[oracle@oracle12c ~]$ mkdir -p $ORACLE_BASE/admin/addb/{a,b,c,u}dump
[oracle@oracle12c ~]$ mkdir -p $ORACLE_BASE/admin/addb/pfile
[oracle@oracle12c ~]$ mkdir -p $ORACLE_BASE/oradata/addb

3、在$ORACLE_HOME/dbs目录下创建初始化文件
可参考博客ORACLE的init.ora配置文件中参数详解
命名方法:init实例名.ora 本例中initaddb.ora

[oracle@oracle12c ~]$ cd $ORACLE_HOME/dbs
[oracle@oracle12c dbs]$ cp init.ora initaddb.ora
[oracle@oracle12c dbs]$ vi initaddb.ora
db_name='addb'
memory_target=1G
processes = 150
audit_file_dest='/usr/local/Oracle/admin/addb/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/usr/local/Oracle/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/usr/local/Oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
# You may want to ensure that control files are created on separate physical
# devices
control_files = (ora_control1, ora_control2)
compatible ='11.2.0'

注意不要用原来的<ORACLE_BASE>作为路径,修改为对应的绝对路径,否则会报错
4、创建密码文件
可参考博客oracle orapwd命令使用说明

[oracle@oracle12c dbs]$ orapwd file=$ORACLE_HOME/dbs/orapwaddb password=p@ssw0rd entries=5 force=y

5、创建oracle的建库脚本 createdb.sql,内容如下,将其放在了$ORACLE_BASE/oradata/addb下面

[oracle@oracle12c dbs]$ cd $ORACLE_BASE/oradata/addb
[oracle@oracle12c addb]$ vi createdb.sql
CREATE DATABASE addb
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE '/usr/local/Oracle/oradata/addb/system01.dbf' size 100m reuse autoextend on next 1m maxsize unlimited extent management local
sysaux datafile '/usr/local/Oracle/oradata/addb/sysaux01.dbf' size 100m reuse autoextend on next 1m maxsize unlimited
default temporary tablespace TEMP tempfile '/usr/local/Oracle/oradata/addb/temp01.dbf' size 20m reuse autoextend on next 640k maxsize unlimited
undo tablespace UNDOTBS1 datafile '/usr/local/Oracle/oradata/addb/undo01.dbf' size 20m reuse autoextend on next 5M maxsize unlimited
logfile
GROUP 1 ('/usr/local/Oracle/oradata/addb/redo1.dbf') size 10m,
GROUP 2 ('/usr/local/Oracle/oradata/addb/redo2.dbf') size 10m,
GROUP 3 ('/usr/local/Oracle/oradata/addb/redo3.dbf') size 10m
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
;

6、执行建库和数据字典脚本
以sysdba进入:

sqlplus / as sysdba

依次执行以下命令

startup nomount;
@$ORACLE_BASE/oradata/addb/createdb.sql
@?/rdbms/admin/catalog.sql;
@?/rdbms/admin/catproc.sql;
@?/rdbms/admin/catexp.sql;

7、修改监听配置文件listener.ora
到$ORACLE_HOME/network/admin目录下:vi listener.ora

[oracle@oracle12c addb]$ cd $ORACLE_HOME/network/admin
[oracle@oracle12c admin]$ vi listener.ora

addb =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle12c)(PORT = 1522))
      )
    )
  )
SID_LIST_addb =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = addb)
      (ORACLE_HOME = /usr/local/Oracle/Product/11.2.0/)
      (SID_NAME = addb)
    )
  )

[oracle@oracle12c admin]$ lsnrctl start addb
[oracle@oracle12c admin]$ lsnrctl status addb

8、创建user表空间

SQL> select name from v$database;
SQL> CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE '/usr/local/Oracle/oradata/addb/user01.dbf' SIZE 1000M REUSE EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
SQL> ALTER DATABASE DEFAULT TABLESPACE "USERS";
SQL> create spfile from pfile;
使用system用户编译:
SQL> @/usr/local/Oracle/Product/11.2.0/sqlplus/admin/pupbld.sql
SQL> @/usr/local/Oracle/Product/11.2.0/sqlplus/admin/help/hlpbld.sql helpus.sql

SQL> select * from all_tab_comments;
SQL> select * from user_tab_comments;
SQL> select * from all_col_comments;
原文地址:https://www.cnblogs.com/shujk/p/13752668.html