Linux环境手动创建oracle10g数据库实践
生活随笔
收集整理的這篇文章主要介紹了
Linux环境手动创建oracle10g数据库实践
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
OS [root@T_life_db etc]# uname -a Linux T_life_db 2.6.18-238.el5 #1 SMP Sun Dec 19 14:22:44 EST 2010 x86_64 x86_64 x86_64 GNU/Linux 1創建新用戶組 創建用戶組oracle和dba 查看要創建的用戶組是否存在 [root@T_life_db home]# less /etc/group 確定不存在,創建之 [root@T_life_db home]# groupadd oracle [root@T_life_db home]# groupadd dba 2創建新用戶 創建用戶oracle 查看要創建的用戶是否存在 [root@T_life_db oracle]# grep bash /etc/passwd 確定不存在,創建、分配組并初始化密碼 [root@T_life_db home]# useradd oracle -g oracle -G dba [root@T_life_db home]# passwd oracle 修改oracle軟件卷和數據卷owner [root@T_life_db home]#chown oracle:dba /oracle [root@T_life_db home]#chown oracle:dba /oradata 3安裝oracle10g軟件 從另一同平臺主機拷貝oracle軟件tar包到軟件卷。 本次通過SSH的ftp工具拷貝。 解tar包完成軟件安裝 [oracle@T_life_db ~]$tar xvf product.tar 4手動創建DB 4.1創建環境變量文件 創建環境變量文件prof_lifetest并加載,文件內容如下 PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin export PATH #Oracle DB 10g Environment export ORACLE_SID=lifetest export ORACLE_BASE=/oracle export ORACLE_HOME=$ORACLE_BASE/product/db10gr2 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK export ORA_NLS10=$ORACLE_HOME/nls/data export LIBPATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib32:$ORACLE_HOME/ctx/lib export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/usr/lib:/lib export CLASSPATH=$ORACLE_HOME/product/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME/jre export PATH=$PATH:$ORACLE_HOME/bin export ORACLE_DOC=$ORACLE_HOME export TMP=/tmp export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss' export EDITOR=vi export AIXTHREAD_SCOPE=S set -o vi umask 022 4.2創建dump目錄 [oracle@T_life_db oracle]$ mkdir admin [oracle@T_life_db oracle]$ cd admin [oracle@T_life_db admin]$ mkdir lifetest [oracle@T_life_db admin]$ cd lifetest [oracle@T_life_db lifetest]$ mkdir -p adump bdump cdump udump 4.3創建數據文件目錄 [oracle@T_life_db oradata]$ mkdir lifetest 4.4創建pfile 創建文件$ORACLE_HOME/dbs/initlifetest.ora 內容如下: *._gby_hash_aggregation_enabled=false *.aq_tm_processes=0 *.background_dump_dest='/oracle/admin/lifetest/bdump' *.compatible='10.2.0.1.0' *.control_files=/oradata/lifetest/control01.ctl,/oradata/lifetest/control02.ctl, /oradata/lifetest/control03.ctl *.core_dump_dest='/oracle/admin/lifetest/cdump' *.cursor_sharing='EXACT' *.db_block_size=8192 *.db_domain='CCIC' *.db_file_multiblock_read_count=16 *.db_files=1000 *.db_name='lifetest' *.fast_start_mttr_target=300 *.global_names=TRUE *.instance_name='lifetest' *.job_queue_processes=10 *.log_buffer=1048576 *.NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS' *.open_cursors=800 *.OS_AUTHENT_PREFIX='' *.pga_aggregate_target=200000000 *.processes=300 *.query_rewrite_enabled='FALSE' *.remote_login_passwordfile='EXCLUSIVE' *.remote_os_authent=FALSE *.sessions=150 *.session_cached_cursors=100 *.session_max_open_files=20 *.sga_max_size=800000000 *.shared_pool_size=107497472 *.star_transformation_enabled='FALSE' *.timed_statistics=TRUE *.undo_management='AUTO' *.undo_retention=10800 *.undo_tablespace='UNDOTBS1' *.user_dump_dest='/oracle/admin/lifetest/udump' 4.5創建密碼文件 orapwd file=orapwlifetest password=oracle entries=5 force=y 4.6啟動數據庫 SQL>startup nomount 本次發生一些錯誤,詳述如下。 錯誤1 現象 ORA-00600: internal error code, arguments: [keltnfy-ldmInit], [46], [1], [], [], [], [], [] 原因 查詢metalink得到問題原因,是由于獲得主機信息時有錯誤。詳見下面鏈接 https://support.oracle.com/CSP/ui/flash.html#tab=KBHome(page=KBHome&id=()),(page=KBNavigator&id=(from=BOOKMARK&bmDocID=336447.1&bmDocDsrc=KB&bmDocType=PROBLEM&bmDocTitle=Startup%20Database%20Produces%20Ora-00600:%20%5BKeltnfy-Ldminit%5D&viewingMode=1143)) 處理 修改hosts文件. $ more /etc/hosts 127.0.0.1 lifedbtest localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 增加一行。 10.0.13.198 T_life_db 確認通過hostname可以ping通。 [oracle@T_life_db dbs]$ ping T_life_db PING T_life_db (10.0.13.198) 56(84) bytes of data. 64 bytes from T_life_db (10.0.13.198): icmp_seq=1 ttl=64 time=0.019 ms 64 bytes from T_life_db (10.0.13.198): icmp_seq=2 ttl=64 time=0.013 ms 錯誤2 現象 SQL> startup nomount ORA-00371: not enough shared pool memory, should be atleast 107497472 bytes 原因 shared pool memory不足 處理 在pfile中添加一行 *.shared_pool_size=107497472 4.7創建建庫腳本 建庫腳本create_lifetest.sql,內容如下: create database lifetest MAXINSTANCES 1 MAXLOGHISTORY 1 MAXLOGFILES 16 MAXLOGMEMBERS 5 MAXDATAFILES 1000 DATAFILE '/oradata/lifetest/system01.dbf' size 200m reuse autoextend on next 1m maxsize unlimited extent management local sysaux datafile '/oradata/lifetest/sysaux01.dbf' size 200m reuse autoextend on next 1m maxsize unlimited default temporary tablespace TEMP tempfile '/oradata/lifetest/temp01.dbf' size 200m reuse autoextend on next 1m maxsize unlimited undo tablespace UNDOTBS1 datafile '/oradata/lifetest/undo01.dbf' size 200m reuse autoextend on next 5M maxsize unlimited logfile GROUP 1 ('/oradata/lifetest/redo1.dbf') size 256m, GROUP 2 ('/oradata/lifetest/redo2.dbf') size 256m, GROUP 3 ('/oradata/lifetest/redo3.dbf') size 256m CHARACTER SET ZHS16GBK NATIONAL CHARACTER SET AL16UTF16 ; 4.8執行建庫腳本 SQL> @create_lifetest.sql Database created. 耗時大約幾分鐘。時間隨創建文件的大小變化。注意建庫腳本要在nomount狀態下運行。本次運行出現一些錯誤,詳述如下。 錯誤1 現象 alert log顯示 CREATE UNDO TABLESPACE UNDOTBS1 DATAFILE '/oradata/lifetest/undo01.dbf' size 200m reuse autoextend on next 5M maxsize unlimited
ORA-30012 signalled during: CREATE UNDO TABLESPACE UNDOTBS1 DATAFILE '/oradata/lifetest/undo01.dbf' size 200m reuse autoextend on next 5M maxsize unlimited ... Tue Mar 8 11:57:54 2011 Errors in file /oracle/admin/lifetest/udump/lifetest_ora_16414.trc: ORA-00604: error occurred at recursive SQL level 1 ORA-30012: undo tablespace 'UNDODBS1' does not exist or of wrong type Tue Mar 8 11:57:54 2011 Errors in file /oracle/admin/lifetest/udump/lifetest_ora_16414.trc: ORA-01501: CREATE DATABASE failed ORA-01519: error while processing file '?/rdbms/admin/sql.bsq' near line 5792 ORA-00604: error occurred at recursive SQL level 1 ORA-30012: undo tablespace 'UNDODBS1' does not exist or of wrong type Error 1519 happened during db open, shutting down database USER: terminating instance due to error 1519 Instance terminated by USER, pid = 16414 ORA-1092 signalled during: create database lifetest lifetest_ora_16414.trc 顯示 *** 2011-03-08 11:57:48.166 *** SERVICE NAME:() 2011-03-08 11:57:48.166 *** SESSION ID:(323.3) 2011-03-08 11:57:48.166 kccsga_update_ckpt: num_1 = 1, num_2 = 0, num_3 = 0, lbn_2 = 0, lbn_3 = 0 Control file created with size 864 blocks ORA-00604: error occurred at recursive SQL level 1 ORA-30012: undo tablespace 'UNDODBS1' does not exist or of wrong type Offending statement at line 5792 CREATE UNDO TABLESPACE UNDOTBS1 DATAFILE '/oradata/lifetest/undo01.dbf' size 200m reuse autoextend on next 5M maxsize unlimited ORA-01501: CREATE DATABASE failed ORA-01519: error while processing file '?/rdbms/admin/sql.bsq' near line 5792 ORA-00604: error occurred at recursive SQL level 1 ORA-30012: undo tablespace 'UNDODBS1' does not exist or of wrong type 原因 建庫腳本和pfile中對undo表空間的描述不一致。 pfile中 *.undo_tablespace='UNDODBS1' 建庫腳本中 undo tablespace UNDOTBS1 datafile 處理 修改pfile同建庫腳本一致。關閉數據庫并重啟到nomount。 錯誤2 現象 再次執行建庫腳本 SQL> @create_lifetest.sql create database lifetest * ERROR at line 1: ORA-01501: CREATE DATABASE failed ORA-00200: control file could not be created ORA-00202: control file: '/oradata/lifetest/control01.ctl' ORA-27038: created file already exists Additional information: 1
SQL> @create_lifetest.sql create database lifetest * ERROR at line 1: ORA-01501: CREATE DATABASE failed ORA-00301: error in adding log file '/oradata/lifetest/redo1.dbf' - file cannot be created ORA-27038: created file already exists Additional information: 1 原因 上次建庫失敗時的遺留的controlfile,redo log沒有清除 處理 [oracle@T_life_db lifetest]$ rm *.ctl [oracle@T_life_db lifetest]$ rm redo* 4.9創建數據字典 數據庫創建完成后,v$動態視圖可以使用,DBA_XXX等視圖還不可用。 再運行腳本創建ORACLE的數據字典。建議spool輸出腳本運行結果,便于排查錯誤。 SQL>@?/rdbms/admin/catalog.sql SQL>@?/rdbms/admin/catproc.sql SQL>@?/rdbms/admin/catexp.sql 這3個腳本的執行時間均需要幾分鐘。 到此手動創建DB過程完成。 5配置監聽和tns 5.1listener.ora中增加配置 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = lifetest) (ORACLE_HOME = /oracle/product/db10gr2) ) )
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = T_life_db)(PORT = 1521)) ) ) 啟動監聽 [oracle@T_life_db admin]$ lsnrctl start 5.2tnsnames.ora中增加配置 lifetest = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.13.198)(PORT = 1521)) ) (CONNECT_DATA = (SID = lifetest) ) ) 遠程登錄驗證無誤。
轉載于:https://blog.51cto.com/liujia/780734
總結
以上是生活随笔為你收集整理的Linux环境手动创建oracle10g数据库实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: thinkPHP开发基础知识 包括变量神
- 下一篇: 函数指针数组在ARM异常中断处理中的应用