標籤:top pen employee 控制 後台進程 oem ring dbcontrol 記憶體
執行個體管理
監聽
啟動監聽:
$ netstat -tlnp | grep 1521
$ lsnrctl
LSNRCTL> help
$ lsnrctl status
$ lsnrctl stop
$ netstat -tln | grep 1521
快速動態註冊:(可選)
$ sqlplus / as sysdba
SQL> alter system register;
$ lsnrctl status
em
啟動EM:
$ netstat -tlnp | grep 1158
$ echo $ORACLE_SID
orcl
$ echo $ORACLE_UNQNAME
orcl
如果沒有設定ORACLE_UNQNAME:
$ export ORACLE_UNQNAME=orcl
或
$ vi .bash_profile
export ORACLE_UNQNAME=orcl
$ . .bash_profile
確保主機名稱正常解析:
$ cat /etc/hosts
$ emctl status dbconsole
$ emctl stop dbconsole
$ emctl start dbconsole
查看oem的連接埠:
$ find /u01 -name portlist.ini
重新設定em:
$ emca
$ emca -deconfig dbcontrol db 刪掉
$ emca -config dbcontrol db 重新設定
啟動執行個體:
$ ls $ORACLE_HOME/dbs/spfileorcl.ora
SQL> shutdown immediate
SQL> startup nomount 初始化
SQL> select status from v$instance; 查看執行個體 可以查詢記憶體中資訊
SQL> select * from v$sgainfo;
SQL> select * from hr.employees;
SQL> conn hr/hr
SQL> startup mount或alter database mount; 到了nomount階段用
SQL> show parameter control_files
SQL> select status from v$instance;
SQL> select * from v$controlfile;
SQL> select name from v$datafile; 動態視圖 都是來自控制檔案 因為還沒開啟資料庫(資料檔案)
SQL> select * from hr.employees;
SQL> conn hr/hr
SQL> startup或alter database open; 根據控制檔案記錄 逐一定位元據檔案
SQL> select status from v$instance;
SQL> select * from hr.employees;
SQL> conn hr/hr
關閉資料庫:
SQL> shutdown normal 不串連新使用者 等待 不會主動關閉當前會話
SQL> shutdown transactional 不串連新使用者 等目前使用者完畢 沒有運行 就主動關閉會話 事務性關閉
SQL> shutdown immediate 立即關閉
SQL> shutdown abort
控制指令碼:
$ vi /etc/oratab
$ vi $ORACLE_HOME/bin/dbstart
$ vi $ORACLE_HOME/bin/dbshut
重啟資料庫:
SQL> startup force
startup force = shutdown abort + startup
startup force mount = shutdown abort + startup mount
練習:
熟悉3個服務的啟動和關閉
參數管理
參數檔案:
$ ls $ORACLE_HOME/dbs/spfileorcl.ora
預先備份:
$ cp spfileorcl.ora spfileorcl.ora.bak
不可以通過vi直接修改!
查看參數:
SQL> show parameter
SQL> select NAME, VALUE from v$parameter;
修改參數:
動態參數:立即生效
$ strings $ORACLE_HOME/dbs/spfileorcl.ora|grep resource_limit
SQL> show parameter RESOURCE_LIMIT
SQL> alter system set RESOURCE_LIMIT=true;
SQL> show parameter RESOURCE_LIMIT
$ strings $ORACLE_HOME/dbs/spfileorcl.ora|grep resource_limit
當前記憶體值改 寫入參數檔案
不管靜態動態都是系統修改。
靜態參數:重啟後才會生效
$ strings $ORACLE_HOME/dbs/spfileorcl.ora|grep processes
*.processes=150
SQL> show parameter processes 值為150
SQL> alter system set processes=300 scope=spfile; 只改檔案
SQL> show parameter processes 值為150
$ cat $ORACLE_HOME/dbs/spfileorcl.ora
*.processes=300
重啟資料庫,靜態參數修改生效:
SQL> shutdown immediate
SQL> startup
SQL> show parameter processes 值為300
動態
session層級修改參數:
SQL> select sysdate from dual;
SQL> alter session set nls_date_format=‘dd-mon rr‘;
SQL> select sysdate from dual; 隻影響當前會話,不影響系統
SQL> conn / as sysdba
SQL> select sysdate from dual; 恢複預設設定
pfile/spfile格式轉換:
SQL> create pfile=‘/home/oracle/initorcl.ora‘ from spfile;
$ cat /home/oracle/initorcl.ora
$ mv $ORACLE_HOME/dbs/spfileorcl.ora $ORACLE_HOME/dbs/spfileorcl.ora.bak
SQL> shutdown immediate
SQL> create spfile from pfile=‘/home/oracle/initorcl.ora‘; 二進位 文字檔轉換二進位
$ strings $ORACLE_HOME/dbs/spfileorcl.ora
指定參數檔案啟動資料庫:
SQL> startup pfile=‘/home/oracle/initorcl.ora‘
練習:
修改resource_limit和processes參數。並在alert log中找到對應的資訊。
警告日誌和後台進程的轉儲檔案
$ find /u01 -name alert_*.log
$ vi /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log
SQL> show parameter dump
oracle課堂隨筆--第十六天