0
点赞
收藏
分享

微信扫一扫

Oracle 手工建库第一步 创建instance

攻城狮Chova 2022-08-17 阅读 72


其实在很多环境下是无法打开图形界面的,那么创建数据库只能通过手工的方式来创建。

手工建库可以分为三部分:

先创建实例,口令文件将数据库启动到nomount状态

 

(1)创建初始化参数文件pfile

 

首先确定数据库名,然后生成pfile文件。

 

先进入到$ORACLE_HOME/dbs下面,pfile文件应该放在该目录下面。在Oracle软件安装好之后在该目录下面会自动的生成init.ora这个文件,这个文件就可以当做pfile的一个模板。

[oracle@Database2 dbs]$ cd $ORACLE_HOME/dbs

[oracle@Database2 dbs]$ ls

hc_oradb.dat init.ora snapcf_oradb.f

[oracle@Database2 dbs]$ cat init.ora --查看这个文件里面的内容,这个文件里面的内容就足够创建一个pfile

db_name='ORCL'

memory_target=1G

processes = 150

audit_file_dest='<ORACLE_BASE>/admin/orcl/adump'

audit_trail ='db'

db_block_size=8192

db_domain=''

db_recovery_file_dest='<ORACLE_BASE>/flash_recovery_area'

db_recovery_file_dest_size=2G

diagnostic_dest='<ORACLE_BASE>'

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@Database2 dbs]$ vi initoradb.ora --生成pfile文件,这个文件名是init<SID>.ora,将上面的内容复制进去,然后修改里面的内容。

 

db_name='oradb' --写上数据库名

 

 

原来:audit_file_dest='<ORACLE_BASE>/admin/orcl/adump'

修改后:audit_file_dest='$ORACLE_BASE/admin/oradb/adump'  --审计文件存放的路径,oradb是实例名字,这个目录是不存在的,需要手工创建这个目录。

 

[root@Database2 ~]# su - oracle
[oracle@Database2 ~]$ mkdir -p $ORACLE_BASE/admin/oradb/adump --手工创建目录


修改前:diagnostic_dest='<ORACLE_BASE> ' --这个是存放告警日志 ,生成的一些trace文件
修改后:diagnostic_dest='$ORACLE_BASE'

remote_login_passwordfile='EXCLUSIVE' --这个是sys用户远程连接的时候对其身份认证口令文件对其验证,EXCLUSIVE代表可以远程登入。

 

undo_tablespace='UNDOTBS1'  --这个要和建库脚本里面的内容是一样的。

 

控制文件修改之前:control_files = (ora_control1, ora_control2)
修改之后:control_files = '/u01/app/oracle/oradata/oradb/control01.ctl'
[oracle@Database2 oradb]$ mkdir -p /u01/app/oracle/oradata/oradb --这个目录也可能不存在,要手工创建一下

 

[oracle@Database2 dbs]$ cat initoradb.ora --修改完之后pfile的内容(pfile文件里面的参数越少越好,这样出错的概率也不会大。)

db_name='oradb'

memory_target=1G

processes = 150

audit_file_dest='$ORACLE_BASE/admin/oradb/adump'

audit_trail ='db'

db_block_size=8192

db_domain=''

diagnostic_dest='$ORACLE_BASE'

dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'

open_cursors=300

remote_login_passwordfile='EXCLUSIVE'

undo_tablespace='UNDOTBS1'

control_files = '/u01/app/oracle/oradata/oradb/control01.ctl'

compatible ='11.2.0'

 

(2)创建口令文件

口令文件是当sys用户远程登入的时候,需要对其身份进行验证,口令文件格式是orapw<SID>

[oracle@Database2 dbs]$ cd $ORACLE_HOME/dbs
[oracle@Database2 dbs]$ ls
hc_oradb.dat init.ora initoradb.ora snapcf_oradb.f

[oracle@Database2 dbs]$ orapwd file=orapworadb entries=3  password=oracle  --创建口令文件是使用orapwd这个工具来创建,entries=3代表同时允许具有sysdba权限的三个用户来登入。

file - name of password file (required),
password - password for SYS will be prompted if not specified at command line,
entries - maximum number of distinct DBA (optional),

[oracle@Database2 dbs]$ ls
hc_oradb.dat init.ora initoradb.ora orapworadb snapcf_oradb.f
[oracle@Database2 dbs]$ cat orapworadb

 

 

(3)启动实例

[oracle@Database2 dbs]$ export ORACLE_SID=oradb  --如果有多个实例,指明启动哪个实例
[oracle@Database2 dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu May 24 02:46:16 2018

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup;
ORA-00845: MEMORY_TARGET not supported on this system

 

下面蓝色部分是调整操作系统的大小解决上面红色的报错

[root@Database2 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_database1-lv_root
23G 9.6G 12G 46% /
tmpfs 1004M 276K 1004M 1% /dev/shm

[root@Database2 ~]# cat /etc/fstab | grep tmpfs
tmpfs /dev/shm tmpfs defaults,size=1700m 0 0

[root@Database2 ~]# mount -o remount /dev/shm

[root@Database2 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_database1-lv_root
23G 9.6G 12G 46% /
tmpfs 1.7G 276K 1.7G 1% /dev/shm

SQL> startup nomount; --修改完之后启动实例到nomount
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size 2260088 bytes
Variable Size 671089544 bytes
Database Buffers 390070272 bytes
Redo Buffers 5517312 bytes

SQL> show parameter name;

NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
cell_offloadgroup_name string
db_file_name_convert string
db_name string oradb
db_unique_name string oradb
global_names boolean FALSE
instance_name string oradb
lock_name_space string
log_file_name_convert string
processor_group_name string
service_names string oradb

上面就是手工建库的第一步,通过创建pfile和口令文件来将数据库启动到nomount状态。

 

总结:创建pfile面,有些物理路径不存在的需要使用oracle用户手工创建,之后创建口令文件,最后启动实例,在这一步只需要将实例启动到nomount状态,之后接下来手工建库第二步建数据库。

请参考 ​​Oracle 手工建库第二步 创建databse​​

举报

相关推荐

0 条评论