您的位置:首页 > 数据库 > Oracle

Oracle手工创建数据库

2017-11-29 08:59 387 查看
为了手工创建数据库,先使用DBCA将之前的数据库删除。





如果在删除数据库的时候delete d database选项是不可选的说明/etc/oratab是由问题的。

 

[root@localhost lu]# cat /etc/oratab

oradb:/u01/app/oracle/product/11.2.0/db_1:Y

这个文件是在创建数据库实例时建立的,需要用root用户运行root.sh,如果忘记运行在自启动和关闭时会失败,错误信息:"/etc/oratab"
is not accessible。

它记录主机中有多少个数据库。

在$ORACLE_HOME/bin目录下的$ORACLE_HOME/bin/dbstart和$ORACLE_HOME/bin/dbshut需要调用/etc/oratab文件,如果不存在,dbstart和dbshut将失败。

etc/oratab 格式为: SID:ORACLE_HOME:AUTO

如果需要自动启动数据库,则将AUTO设为Y,在调用dbstart命令才生效。dbstart根据/etc/oratab中的配置来启动相应的数据库,选项只是能不能用$ORACLE_HOME/bin/dbstart和$ORACLE_HOME/bin/dbshut来启动和关闭数据库的开关。

$ORACLE_SID:$ORACLE_HOME:<N|Y>

说明:第一个区域的值是sid,第二个区域的值是数据库主目录,第三个区域的值Y或N指定你是否想要dbstart和dbshut脚本启动并关闭数据库

 

 

手工创建建数据库
Step 1: Specify an Instance Identifier (SID)
export ORACLE_SID=oradb

echo $ORACLE_SID

 

Step 2: Ensure That the Required Environment Variables Are Set
more .bash_profile

Step 3: Choose a Database Administrator Authentication Method(创建OEM的密码文件,这步也可以省略,如果只是手工创建数据库)

前面两步可以不做,因为在/home/oracle/.bash_profile里面有export ORACLE_SID=oradb的语句了。


[oracle@oracle11g ~]$ cd $ORACLE_HOME/dbs

[oracle@oracle11g dbs]$ pwd

/u01/app/oracle/product/11.2.0/db_1/dbs

[oracle@oracle11g dbs]$ orapwd file=orapworasb password=oracle

[oracle@oracle11g dbs]$ ll

total 12

-rw-rw---- 1 oracle oinstall 1544 Nov 25 21:52 hc_ordb.dat

-rw-r--r-- 1 oracle oinstall 2851 May 15  2009 init.ora

-rw-r----- 1 oracle oinstall 1536 Nov 25 22:02 orapworasb

 

Step 4: Create the Initialization Par
[oracle@ocp-exam ~]$ vi /home/oracle/initoradb.txt' 

db_name=oradb

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

 

[oracle@oracle11g oracle]$ ls

admin  cfgtoollogs  checkpoints  diag  fast_recovery_area  oradata  product

[oracle@oracle11g oracle]$ cd oradata

[oracle@oracle11g oradata]$ ls

[oracle@oracle11g oradata]$ mkdir oradb(控制文件要放在oradata下面,创建一个oradb目录存放控制文件)

 

 

Step 5: Connect to the
sqlpus / as sysdba 

Step 6: Create a Server Parameter File 

SQL> create spfile from pfile='/home/oracle/initoradb.txt' ;

File created.

 

[oracle@localhost db_1]$ pwd

/u01/app/oracle/product/11.2.0/db_1

[oracle@localhost db_1]$ cd dbs

[oracle@localhost dbs]$ ls

hc_oradb.dat  init.ora  lkORADB  orapworasb  spfileoradb.ora(可以看到在dbs目录下面创建了参数文件)

 

Step 7: Start the Instance 

SQL> startup nomount;(由于创建了二进制参数文件,故可以将数据库启动到nomount状态)

ORACLE instance started.

 

Total System Global Area  217157632 bytes

Fixed Size     2251816 bytes

Variable Size   159384536 bytes

Database Buffers    50331648 bytes

Redo Buffers     5189632 bytes

 

Step 8: Issue the CREATE DATABASE Statement 

[oracle@oracle11g oradata]$ cd /home/oracle

[oracle@oracle11g ~]$ vi creatdb.txt  在这个文件里面添加创建数据库的语句

 

CREATE DATABASE oradb

USER SYS IDENTIFIED BY oracle

USER SYSTEM IDENTIFIED BY oracle

LOGFILE GROUP 1 ('/u01/app/oracle/oradata/oradb/redo01.log') SIZE 50M,

GROUP 2 ('/u01/app/oracle/oradata/oradb/redo02.log') SIZE 50M,

GROUP 3 ('/u01/app/oracle/oradata/oradb/redo03.log') SIZE 50M

MAXLOGFILES 20

MAXLOGMEMBERS 5

MAXLOGHISTORY 200

MAXDATAFILES 100

CHARACTER SET ZHS16GBK

NATIONAL CHARACTER SET AL16UTF16

EXTENT MANAGEMENT LOCAL

DATAFILE '/u01/app/oracle/oradata/oradb/system01.dbf' SIZE 500M REUSE

SYSAUX DATAFILE '/u01/app/oracle/oradata/oradb/sysaux01.dbf' SIZE 325M REUSE

DEFAULT TEMPORARY TABLESPACE temp

TEMPFILE '/u01/app/oracle/oradata/oradb/temp01.dbf'

SIZE 20M REUSE

UNDO TABLESPACE undotbs1

DATAFILE '/u01/app/oracle/oradata/oradb/undotbs01.dbf'

SIZE 200M REUSE; 

 

 

Step 9: Run Scripts 

SQL> @/home/oracle/creatdb.txt;将第八步创建数据库语句执行

SQL> @?/rdbms/admin/catalog.sql   建立视图(下面几个.sql脚本是数据库自带的)

SQL> @?/rdbms/admin/catproc.sql   存储过程

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

 

 

 

上面这些步骤创建完毕之后再连接进去,使用下面的语句会发现数据库已经处于open的状态了。

 

SQL> select INSTANCE_NAME,VERSION, STATUS  from v$instance;

 

INSTANCE_NAME    VERSION           STATUS

---------------- ----------------- ------------

ordb             11.2.0.4.0        OPEN

 

 

tailf /u01/app/oracle/diag/rdbms/oradb/ordb/trace/alert_ordb.log 

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      ordb

lock_name_space                      string

log_file_name_convert                string

processor_group_name                 string

service_names                        string      oradb

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: