t oracle删除吗,Oracle 11g 手工建库与删库
Oracle 11g 手工建庫與刪庫
在前一篇文章中提到閱讀Oracle 11gR2 Administrator‘s
Guide(文檔編號E25494-01)時,簡單描述了DDL_LOCK_TIMEOUT參數(shù)。在Oracle 11gR2
Administrator‘s Guide文檔的chapter 2 Creating and Configuring an
Oracle Database章節(jié)時,提到手工建庫,本文簡單記錄一下,如何在OEL 5.5
X86_64位環(huán)境下,手工創(chuàng)建及刪除11.2.0.1.0的數(shù)據(jù)庫,將文件放到文件系統(tǒng)上存放。當然,利用DBCA來建庫、刪庫比較簡單,就不再贅述了。具體操作步驟如下:
1 前提條件,操作系統(tǒng)上已經(jīng)安裝好Oracle 11gR2 的軟件
其中環(huán)境變量ORACLE_BASE=/u01/app/oracle,ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1;
[root@OCM11g ~]# su - oracle
OCM11g-> env | grep ORA
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
OCM11g->
2 確認環(huán)境變量
本例中選擇ORACLE_SID=manualdb,ORACLE_HOME選用原有的/u01/app/oracle/product/11.2.0/db_1;
OCM11g-> iduid=1101(oracle) gid=1000(oinstall) groups=1000(oinstall),1201(asmdba),1300(dba),1301(oper)OCM11g-> uname -rm2.6.18-194.el5 x86_64OCM11g-> export ORACLE_SID=manualdbOCM11g-> env | grep ORAORACLE_SID=manualdbORACLE_BASE=/u01/app/oracleORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1OCM11g->
3 創(chuàng)建初始化參數(shù)文件
這里將參數(shù)文件放到系統(tǒng)默認的路徑下,即$ORACLE_HOME/dbs,命名為initmanualdb.ora,其內容如下:
OCM11g-> cat /u01/app/oracle/product/11.2.0/db_1/dbs/initmanualdb.ora
db_name=manualdb
memory_target=600m
OCM11g->
簡單起見,我們只在初始化參數(shù)文件中指定了db_name,memory_target這兩個參數(shù)。我們知道,啟動數(shù)據(jù)庫實例的最少參數(shù)只需要一個db_name即可,這里選擇db_name=manualdb,附加一個memory_target=600m,這個是11g的新參數(shù),用于控制SGA+PGA的總大小。當然,也可以在參數(shù)文件中指定control_files,如果該參數(shù)被忽略的話,那么Oracle會自動在$ORACLE_HOME/dbs路徑下創(chuàng)建一個名為cntrl$ORACLE_SID.dbf的控制文件。
4 準備將來存放數(shù)據(jù)文件、日志文件的路徑。
這兩類文件的路徑如下:
datafile:
OCM11g-> mkdir -p /u02/manualdb/oradata
online log:
OCM11g-> mkdir -p /u02/manualdb/onlinelogOCM11g-> ll /u02/manualdb/total 8drwxr-xr-x 2 oracle oinstall 4096 Mar 30 10:56 onlinelogdrwxr-xr-x 2 oracle oinstall 4096 Mar 30 10:56 oradataOCM11g->
5 啟動manualdb實例到NOMOUNT狀態(tài)
其實,在該環(huán)境下,我們的控制文件尚未生成,實例至多也只能加載到NOMOUNT狀態(tài):
OCM11g-> id
uid=1101(oracle) gid=1000(oinstall) groups=1000(oinstall),1201(asmdba),1300(dba),1301(oper)
OCM11g-> env | grep ORA
ORACLE_SID=manualdb
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
OCM11g-> sqlplus
SQL*Plus: Release 11.2.0.1.0 Production on Fri Mar 30 10:59:32 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 626327552 bytes
Fixed Size 2215944 bytes
Variable Size 373297144 bytes
Database Buffers 243269632 bytes
Redo Buffers 7544832 bytes
ORA-00205: error in identifying control file, check alert log for more info
SQL>
上述報錯ORA-00205提示控制文件找不到,正是我們所預見的,因為當前控制文件還未生成,所以數(shù)據(jù)庫沒法MOUNT,說明數(shù)據(jù)庫是NOMOUNT狀態(tài)。這時,也可以看到相關的后臺進程已經(jīng)啟動:
SQL> !
OCM11g-> ps -ef | grep ora_|grep -v grep
oracle 14885 1 0 11:02 ? 00:00:00 ora_pmon_manualdb
oracle 14887 1 0 11:02 ? 00:00:00 ora_vktm_manualdb
oracle 14891 1 0 11:02 ? 00:00:00 ora_gen0_manualdb
oracle 14893 1 0 11:02 ? 00:00:00 ora_diag_manualdb
oracle 14895 1 0 11:02 ? 00:00:00 ora_dbrm_manualdb
oracle 14897 1 0 11:02 ? 00:00:00 ora_psp0_manualdb
oracle 14899 1 0 11:02 ? 00:00:00 ora_dia0_manualdb
oracle 14903 1 6 11:02 ? 00:00:27 ora_mman_manualdb
oracle 14905 1 0 11:02 ? 00:00:01 ora_dbw0_manualdb
oracle 14907 1 0 11:02 ? 00:00:00 ora_lgwr_manualdb
oracle 14909 1 0 11:02 ? 00:00:00 ora_ckpt_manualdb
oracle 14911 1 0 11:02 ? 00:00:00 ora_smon_manualdb
oracle 14913 1 0 11:03 ? 00:00:00 ora_reco_manualdb
oracle 14915 1 0 11:03 ? 00:00:00 ora_mmon_manualdb
oracle 14917 1 0 11:03 ? 00:00:00 ora_mmnl_manualdb
OCM11g->
6 執(zhí)行下述CREATE DATABASE的命令,開始手工創(chuàng)建Oracle 數(shù)據(jù)庫:
SQL> conn / as sysdba;
Connected.
SQL> select open_mode from v$database;select open_mode from v$database
*ERROR at line 1:
ORA-01507: database not mounted
手工建庫腳本:
CREATE DATABASE manualdb USER SYS IDENTIFIED BY oracle USER SYSTEM IDENTIFIED BY oracle LOGFILE GROUP 1 ('/u02/manualdb/onlinelog/redo01a.log') SIZE 50M BLOCKSIZE 512, GROUP 2 ('/u02/manualdb/onlinelog/redo02a.log') SIZE 50M BLOCKSIZE 512 MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1
MAXDATAFILES 100 CHARACTER SET AL32UTF8 NATIONAL CHARACTER SET AL16UTF16 EXTENT MANAGEMENT LOCAL DATAFILE '/u02/manualdb/oradata/system01.dbf' SIZE 300M REUSE SYSAUX DATAFILE '/u02/manualdb/oradata/sysaux01.dbf' SIZE 300M REUSE DEFAULT TABLESPACE users DATAFILE '/u02/manualdb/oradata/users01.dbf' SIZE 5M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u02/manualdb/oradata/temp01.dbf' SIZE 20M REUSE UNDO TABLESPACE undotbs DATAFILE '/u02/manualdb/oradata/undotbs01.dbf' SIZE 20M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
Database created.
SQL> select name,open_mode from v$database;
NAME OPEN_MODE
--------- --------------------
MANUALDB READ WRITE
SQL>
7 創(chuàng)建數(shù)據(jù)字典視圖,分別執(zhí)行下述腳本來完成:
SQL> @?/rdbms/admin/catalog.sql
......
......SQL> @?/rdbms/admin/catproc.sql
......
......SQL> @?/sqlplus/admin/pupbld.sql
......
......
上述3個腳本的說明見下表:
The Scripts and
descriptions|------|------||Script|Description||CATALOG.SQL|Creates
the views of the data dictionary tables,the dynamic performance
views,and public synonyms for many of the views.Grants PUBLIC
access to the synonyms.||CATPROC.SQL|Runs all scripts required for
or used with PL/SQL.||PUPBLD.SQL|Required for SQLPlus. Enables
SQLPlus to disable commands by user.|
8 至此,我們完成了手工創(chuàng)建Oracle 數(shù)據(jù)庫。
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
5 rows selected.
SQL> select name,open_mode from v$database;
NAME OPEN_MODE
--------- --------------------
MANUALDB READ WRITE
1 row selected.
SQL> select name from v$datafile 2 union 3 select name from v$controlfile 4 union 5 select member from v$logfile;
NAME
--------------------------------------------------------------------------------/u01/app/oracle/product/11.2.0/db_1/dbs/cntrlmanualdb.dbf/u02/manualdb/onlinelog/redo01a.log/u02/manualdb/onlinelog/redo02a.log/u02/manualdb/oradata/sysaux01.dbf/u02/manualdb/oradata/system01.dbf/u02/manualdb/oradata/undotbs01.dbf/u02/manualdb/oradata/users01.dbf
7 rows selected.
SQL>
9 最后,如果該數(shù)據(jù)庫不需要的話。我們可以執(zhí)行手工刪除數(shù)據(jù)庫
當然必須要將數(shù)據(jù)庫啟動到MOUNT RESTRICT狀態(tài)來刪除:
如何確認實例是否是RESTRICTED MODE:
SQL> select instance_name,status,startup_time,logins from v$instance;
INSTANCE_NAME STATUS STARTUP_TIME LOGINS
--------------- ------------ ------------------- ----------
manualdb MOUNTED 2012/03/30 13:38:52 ALLOWED
1 row selected.
SQL> alter system enable restricted session;
System altered.
SQL> select instance_name,status,startup_time,logins from v$instance;
INSTANCE_NAME STATUS STARTUP_TIME LOGINS
--------------- ------------ ------------------- ----------
manualdb MOUNTED 2012/03/30 13:38:52 RESTRICTED
1 row selected.
SQL> alter system disable restricted session;
System altered.
SQL> select instance_name,status,startup_time,logins from v$instance;
INSTANCE_NAME STATUS STARTUP_TIME LOGINS
--------------- ------------ ------------------- ----------
manualdb MOUNTED 2012/03/30 13:38:52 ALLOWED
1 row selected.
SQL>
通過查看V$INSTANCE動態(tài)性能視圖的LOGINS字段,如果該值為ALLOWED,說明實例是正常啟動,并未進入RESTRICTED
MODE,普通用戶可以正常訪問;如果該值為RESTRICTED說明是RESTRICTED MODE,即需要具有RESTRICTED
SESSION系統(tǒng)權限的用戶方可訪問;
手工刪除數(shù)據(jù)庫:
SQL> select instance_name,status,startup_time,logins from v$instance;
INSTANCE_NAME STATUS STARTUP_TIME LOGINS
--------------- ------------ ------------------- ----------
manualdb MOUNTED 2012/03/30 13:38:52 ALLOWED
1 row selected.
SQL> drop database;
drop database
*ERROR at line 1:
ORA-12719: operation requires database is in RESTRICTED mode
SQL> alter system enable restricted session;
System altered.
SQL> select instance_name,status,startup_time,logins from v$instance;
INSTANCE_NAME STATUS STARTUP_TIME LOGINS
--------------- ------------ ------------------- ----------
manualdb MOUNTED 2012/03/30 13:38:52 RESTRICTED
1 row selected.
SQL> drop database;
Database dropped.
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
此時,Oracle自動刪除該數(shù)據(jù)庫的所有數(shù)據(jù)文件、聯(lián)機重做日志文件、控制文件以及初始化參數(shù)文件。從alert日志文件里可以看到下述信息:
Fri Mar 30 13:45:33 2012drop database
Deleted file /u02/manualdb/oradata/system01.dbf
Deleted file /u02/manualdb/oradata/sysaux01.dbf
Deleted file /u02/manualdb/oradata/undotbs01.dbf
Deleted file /u02/manualdb/oradata/users01.dbf
Deleted file /u02/manualdb/onlinelog/redo01a.log
Deleted file /u02/manualdb/onlinelog/redo02a.log
Deleted file /u02/manualdb/oradata/temp01.dbf
Deleted file /u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_manualdb.f
10 簡單總結,可見手工創(chuàng)建、刪除數(shù)據(jù)庫也很簡單。
當然,在第6步中執(zhí)行手工建庫的命令中還有諸多其它選項,比如選擇OMF,這時,只要在參數(shù)文件中指定DB_CREATE_FILE_DEST參數(shù),那么建庫的命令將更加簡單。
轉:http://www.oracleonlinux.cn/2012/03/11gr2-manual-create-database/?
總結
以上是生活随笔為你收集整理的t oracle删除吗,Oracle 11g 手工建库与删库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 递归展现城市信息,PHP 递归兑
- 下一篇: oracle连接满报错日志,Oracle