程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 詳解Linux系統中Oracle數據庫程序的啟動和關閉方式,linuxoracle

詳解Linux系統中Oracle數據庫程序的啟動和關閉方式,linuxoracle

編輯:Oracle教程

詳解Linux系統中Oracle數據庫程序的啟動和關閉方式,linuxoracle


在單機環境下,要想啟動或關閉ORACLE系統必須首先切換到ORACLE用戶,如下

su - oracle

Oracle數據庫有以下幾種啟動方式:
1、

startup nomount

非安裝啟動,這種方式啟動下可執行:重建控制文件、重建數據庫
讀取init.ora文件,啟動instance,即啟動SGA和後台進程,這種啟動只需要init.ora文件。

2、

startup mount dbname

安裝啟動,這種方式啟動下可執行:
數據庫日志歸檔、
數據庫介質恢復、
使數據文件聯機或脫機,
重新定位數據文件、重做日志文件。

執行“nomount”,然後打開控制文件,確認數據文件和聯機日志文件的位置,
但此時不對數據文件和日志文件進行校驗檢查。

3、

startup open dbname

先執行“nomount”,然後執行“mount”,再打開包括Redo log文件在內的所有數據庫文件,
這種方式下可訪問數據庫中的數據。

4、startup,等於以下三個命令

startup nomount
alter database mount
alter database open

5、

startup restrict

約束方式啟動
這種方式能夠啟動數據庫,但只允許具有一定特權的用戶訪問
非特權用戶訪問時,會出現以下提示:
ERROR:
ORA-01035: ORACLE 只允許具有 RESTRICTED SESSION 權限的用戶使用

6、

startup force

強制啟動方式
當不能關閉數據庫時,可以用startup force來完成數據庫的關閉
先關閉數據庫,再執行正常啟動數據庫命令

7、startup pfile=參數文件名
帶初始化參數文件的啟動方式
先讀取參數文件,再按參數文件中的設置啟動數據庫
例:

startup pfile=E:Oracleadminoradbpfileinit.ora


oracle數據庫幾種關閉方式:

1、

shutdown normal 

  正常方式關閉數據庫。
2、

shutdown immediate 

  立即方式關閉數據庫。
  在SVRMGRL中執行shutdown immediate,數據庫並不立即關閉,
  而是在Oracle執行某些清除工作後才關閉(終止會話、釋放會話資源),
  當使用shutdown不能關閉數據庫時,shutdown immediate可以完成數據庫關閉的操作。
3、

shutdown abort 

  直接關閉數據庫,正在訪問數據庫的會話會被突然終止,
  如果數據庫中有大量操作正在執行,這時執行shutdown abort後,重新啟動數據庫需要很長時間。
 
啟動錯誤問題解決
問題描述:

[oracle@node1 dbs]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Sun Mar 17 16:38:03 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance
SQL> startup nomount
ORA-00845: MEMORY_TARGET not supported on this system

啟動數據庫時,報MEMORY_TARGET 不支持,上網搜索了一下,具體原因是Linux 系統的共享內存比SGA 配置的小。而/dev/shm 是根據tmpfs 的配置來定義的。

[root@node1 ~]# df -h /dev/shm
Filesystem      Size Used Avail Use% Mounted on
tmpfs        1000M   0 1000M  0% /dev/shm
SQL> show parameter memory_target
NAME                 TYPE    VALUE
------------------------------------ ----------- ------------------------------
memory_target            big integer 1G

查了一下tmpfs 的配置,只有1000M,而SGA 配置了1G(換算系1024M),不夠大。解決問題的辦法就是改小SGA 或者改大tmpfs(這裡SGA 1G 已經小了,不建議在改小)。
解決方法1、 修改tmpfs(修改/etc/fstab 配置):

[root@node1 ~]# vim /etc/fstab
# tmpfs          /dev/shm        tmpfs  defaults    0 0
tmpfs  /dev/shm    tmpfs  defaults,size=2048M   0    0
[root@node1 ~]# umount /dev/shm
[root@node1 ~]# mount /dev/shm
[root@node1 ~]# df -h /dev/shm 
Filesystem      Size Used Avail Use% Mounted on
tmpfs         2.0G   0 2.0G  0% /dev/shm

解決方法2、修改SGA:

SQL> show parameter sga
NAME                 TYPE    VALUE
------------------------------------ ----------- ------------------------------
lock_sga               boolean   FALSE
pre_page_sga             boolean   FALSE
sga_max_size             big integer 1G
sga_target              big integer 0
SQL> alter system set sga_max_size=768M scope=spfile;
System altered.
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 801701888 bytes
Fixed Size         2217632 bytes
Variable Size       348129632 bytes
Database Buffers     444596224 bytes
Redo Buffers        6758400 bytes
SQL> show parameter sga
NAME                 TYPE    VALUE
------------------------------------ ----------- ------------------------------
lock_sga               boolean   FALSE
pre_page_sga             boolean   FALSE
sga_max_size             big integer 768M
sga_target              big integer 0

這裡建議直接修改memory_target,讓Oracle 自己去管理SGA 的大小(memory_target=SGA+PGA)

SQL> show parameter memory_target
NAME                 TYPE    VALUE
------------------------------------ ----------- ------------------------------
memory_target            big integer 1G
SQL> alter system set memory_target=768M scope=spfile;
System altered.
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 801701888 bytes
Fixed Size         2217632 bytes
Variable Size       469764448 bytes
Database Buffers     322961408 bytes
Redo Buffers        6758400 bytes
SQL> 
SQL> 
SQL> show parameter memory_target
NAME                 TYPE    VALUE
------------------------------------ ----------- ------------------------------
memory_target            big integer 768M

擴展:
這裡需要注意,memory_target 不能小於SGA 或PGA,不然startup 數據庫的時候會報錯,數據庫不能啟動。

SQL> startup nomount
ORA-00844: Parameter not taking MEMORY_TARGET into account
ORA-00851: SGA_MAX_SIZE 1073741824 cannot be set to more than MEMORY_TARGET 805306368.

解決辦法:

[oracle@node1 dbs]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Sun Mar 17 17:14:38 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> create pfile from spfile;
File created.
SQL> exit

修改init.ora 文件參數

[oracle@node1 dbs]$ vim initoranode1.ora
oranode1.__db_cache_size=444596224
oranode1.__large_pool_size=4194304
oranode1.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
*.audit_file_dest='/u01/app/oracle/admin/oranode1/adump'
*.audit_trail='db'
*.compatible='11.2.0'
*.control_files='/u01/oradata/ora_control1','/u01/fast_recovery_area/ora_control
2'
*.db_block_size=8192
*.db_domain='node1.example.com'
*.db_name='oranode1'
*.db_recovery_file_dest='/u01/fast_recovery_area'
*.db_recovery_file_dest_size=2G
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
*.memory_target=805306368
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_max_size=805306368
*.undo_tablespace='UNDOTBS1'

重新生成spfile

[oracle@node1 dbs]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Sun Mar 17 17:15:28 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> create spfile from pfile;
File created.
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 801701888 bytes
Fixed Size         2217632 bytes
Variable Size       469764448 bytes
Database Buffers     322961408 bytes
Redo Buffers        6758400 bytes
SQL> 
SQL> 
SQL> show parameter memory_target
NAME                 TYPE    VALUE
------------------------------------ ----------- ------------------------------
memory_target            big integer 768M

您可能感興趣的文章:

  • Windows下編寫批處理腳本來啟動和重置Oracle數據庫
  • DBA_Oracle Startup / Shutdown啟動和關閉過程詳解(概念)(對數據庫進行各種維護操作)
  • Oracle監聽器服務不能啟動的解決方法
  • Linux下的Oracle啟動腳本及其開機自啟動
  • Oracle數據庫的啟動與關閉方法
  • 計算機名稱修改後Oracle不能正常啟動問題分析及解決
  • linux下oracle設置開機自啟動實現方法
  • ORACLE11g隨RHEL5系統自動啟動與關閉的設置方法
  • oracle 服務啟動,關閉腳本(windows系統下)
  • Oracle 啟動例程 STARTUP參數說明

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved