oracle数据库创建实例

Posted 我的菜园子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

复制代码
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;

以上是关于oracle数据库创建实例的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段

创建片段的新实例时菜单未膨胀

oracle 第二个数据库实例,用plsql不能连接

Oracle-常用数据库对象笔记(片段)

片段 null 必须是公共静态类才能从实例状态正确重新创建

可以更新片段而不是创建新实例吗?