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
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 21-10月-2019 03:04:10 Copyright (c) 1991, 2016, Oracle. All rights reserved. 启动/usr/local/Oracle/Product/11.2.0/bin/tnslsnr: 请稍候... TNSLSNR for Linux: Version 12.2.0.1.0 - Production 系统参数文件为/usr/local/Oracle/Product/11.2.0/network/admin/listener.ora 写入/usr/local/Oracle/diag/tnslsnr/oracle12c/listener/alert/log.xml的日志信息 监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1521))) 监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle12c)(PORT=1521))) LISTENER 的 STATUS ------------------------ 别名 LISTENER 版本 TNSLSNR for Linux: Version 12.2.0.1.0 - Production 启动日期 21-10月-2019 03:04:10 正常运行时间 0 天 0 小时 0 分 0 秒 跟踪级别 off 安全性 ON: Local OS Authentication SNMP OFF 监听程序参数文件 /usr/local/Oracle/Product/11.2.0/network/admin/listener.ora 监听程序日志文件 /usr/local/Oracle/diag/tnslsnr/oracle12c/listener/alert/log.xml 监听端点概要... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) 监听程序不支持服务 命令执行成功
[oracle@oracle12c ~]$ lsnrctl status
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 21-10月-2019 03:04:13 Copyright (c) 1991, 2016, Oracle. All rights reserved. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle12c)(PORT=1521))) LISTENER 的 STATUS ------------------------ 别名 LISTENER 版本 TNSLSNR for Linux: Version 12.2.0.1.0 - Production 启动日期 21-10月-2019 03:04:10 正常运行时间 0 天 0 小时 0 分 3 秒 跟踪级别 off 安全性 ON: Local OS Authentication SNMP OFF 监听程序参数文件 /usr/local/Oracle/Product/11.2.0/network/admin/listener.ora 监听程序日志文件 /usr/local/Oracle/diag/tnslsnr/oracle12c/listener/alert/log.xml 监听端点概要... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) 监听程序不支持服务 命令执行成功
创建新的实例
1. 首先设置要创建的ORACLE的SID
[oracle@oracle12c ~]$ export ORACLE_SID=addb
2、 创建相应目录
[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目录下创建初始化文件
命名方法: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@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;
[oracle@oracle12c addb]$ sqlplus / as sysdba
SQL> startup nomount;
创建所需文件目录
[oracle@oracle12c addb]$ mkdir /usr/local/Oracle/fast_recovery_area
再次尝试
[oracle@oracle12c addb]$ sqlplus / as sysdba
SQL> startup nomount;
ORACLE 例程已经启动。 Total System Global Area 1073741824 bytes Fixed Size 8628936 bytes Variable Size 679478584 bytes Database Buffers 377487360 bytes Redo Buffers
SQL> @$ORACLE_BASE/oradata/addb/createdb.sql
SQL> @?/rdbms/admin/catalog.sql;
SQL> @?/rdbms/admin/catproc.sql;
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
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 21-10月-2019 04:15:14 Copyright (c) 1991, 2016, Oracle. All rights reserved. 启动/usr/local/Oracle/Product/11.2.0/bin/tnslsnr: 请稍候... TNSLSNR for Linux: Version 12.2.0.1.0 - Production 系统参数文件为/usr/local/Oracle/Product/11.2.0/network/admin/listener.ora 写入/usr/local/Oracle/diag/tnslsnr/oracle12c/addb/alert/log.xml的日志信息 监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522))) 监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1522))) 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522))) LISTENER 的 STATUS ------------------------ 别名 addb 版本 TNSLSNR for Linux: Version 12.2.0.1.0 - Production 启动日期 21-10月-2019 04:15:15 正常运行时间 0 天 0 小时 0 分 1 秒 跟踪级别 off 安全性 ON: Local OS Authentication SNMP OFF 监听程序参数文件 /usr/local/Oracle/Product/11.2.0/network/admin/listener.ora 监听程序日志文件 /usr/local/Oracle/diag/tnslsnr/oracle12c/addb/alert/log.xml 监听端点概要... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1522))) 服务摘要.. 服务 "addb" 包含 1 个实例。 实例 "addb", 状态 UNKNOWN, 包含此服务的 1 个处理程序... 命令执行成功
[oracle@oracle12c admin]$ lsnrctl status addb
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 21-10月-2019 04:16:13 Copyright (c) 1991, 2016, Oracle. All rights reserved. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522))) LISTENER 的 STATUS ------------------------ 别名 addb 版本 TNSLSNR for Linux: Version 12.2.0.1.0 - Production 启动日期 21-10月-2019 04:15:15 正常运行时间 0 天 0 小时 0 分 58 秒 跟踪级别 off 安全性 ON: Local OS Authentication SNMP OFF 监听程序参数文件 /usr/local/Oracle/Product/11.2.0/network/admin/listener.ora 监听程序日志文件 /usr/local/Oracle/diag/tnslsnr/oracle12c/addb/alert/log.xml 监听端点概要... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1522))) 服务摘要.. 服务 "addb" 包含 1 个实例。 实例 "addb", 状态 UNKNOWN, 包含此服务的 1 个处理程序... 命令执行成功
创建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;