Oracle基礎維護01-常用管理命令總結


概覽:

1.Oracle 內存管理

2.Oracle 數據庫啟動關閉

3.Oracle 參數文件

4.Oracle 控制文件

5.Oracle redo日志文件

6.Oracle undo表空間管理

7.Oracle 普通表空間和數據文件

8.Oracle 臨時表空間

9.Oracle 鎖管理

10.Oracle用戶管理

11.Oracle等待事件


1.Oracle 內存管理

1.1內存自動管理

11g:AMM   10g:ASMM

1.2修改sga大小

SQL> alter system set sga_target=1M;

System altered.

SQL> show parameter sga                          

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 748M
sga_target                           big integer 4M        --說明粒度最小為4M.

1.3修改pga大小

SQL> alter system set pga_aggregate_target = 1M;

System altered.

SQL> show parameter pga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 1M

1.4查看當前數據庫內存設定情況

SQL> show parameter memory

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address             integer     0
memory_max_target                    big integer 748M
memory_target                        big integer 748M
shared_memory_address                integer     0
SQL> show parameter sga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 748M
sga_target                           big integer 4M
SQL> show parameter pga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 1M

此時,sga和pga自動調整,sga_target最小為4M,pga_aggregate_target最小為1M;

如果,pga_aggregate_target = 0,sga_target = 0,則sga和pga也是自動調整,sga占用60%,pga占用40%。

2.Oracle 數據庫啟動關閉

2.1Oracle監聽的啟動

SQL>!lsnrctl start

2.2Oracle數據庫正常啟動

SQL>startup

2.3Oracle數據庫正常關閉

SQL>shutdown immediate

3.Oracle 參數文件

3.1參數文件pfile和spfile互相切換

需要重啟庫才可以切換。

startup默認以spfile參數文件啟動庫;startup pfile='$ORACLE_HOME/dbs/initjyzhao.ora'以pfile參數文件啟動庫。

3.2通過spfile創建pfile

SQL> create pfile from spfile;

File created.

SQL> !
[oracle@JY-DB ~]$ cd $ORACLE_HOME/dbs
[oracle@JY-DB dbs]$ ls -lh
total 11M
-rw-rw----. 1 oracle oinstall 1.6K Jun 17 21:57 hc_jyzhao.dat
-rw-r--r--. 1 oracle oinstall 2.8K May 15  2009 init.ora
-rw-r--r--. 1 oracle oinstall 1.1K Jun 17 22:00 initjyzhao.ora
-rw-r-----. 1 oracle oinstall   24 Apr  8 19:40 lkJYZHAO
-rw-r-----. 1 oracle oinstall 1.5K Apr  8 21:17 orapwjyzhao
-rw-r-----. 1 oracle oinstall  11M Jun 17 20:40 snapcf_jyzhao.f
-rw-r-----. 1 oracle oinstall 3.5K Jun 17 21:57 spfilejyzhao.ora
[oracle@JY-DB dbs]$ 
initjyzhao.ora 是剛創建的pfile參數文件。

3.3通過pfile創建spfile

SQL> startup pfile='$ORACLE_HOME/dbs/initjyzhao.ora';
ORACLE instance started.

Total System Global Area  780824576 bytes
Fixed Size                  2232432 bytes
Variable Size             629149584 bytes
Database Buffers          142606336 bytes
Redo Buffers                6836224 bytes
Database mounted.
Database opened.
SQL> create spfile from pfile;

File created.

4.Oracle 控制文件

4.1備份控制文件到trace

SQL> alter database backup controlfile to trace as '/tmp/control.ctl';

Database altered.

4.2重建控制文件

根據/tmp/control.ctl文件的內容提取重建控制文件的sql。

5.Oracle redo日志文件

5.1添加redo組

SQL> alter database add logfile group 5 ('/home/oradata/JYZHAO/onlinelog/redo05a.log','/home/oradata/JYZHAO/onlinelog/redo05b.log') size 50M;

Database altered.

5.2刪除redo組

SQL> alter database drop logfile group 5;

Database altered.

5.3從redo組添加文件

SQL>  alter database add logfile member '/home/oradata/JYZHAO/onlinelog/redo05c.log' to group 5;

Database altered.

5.4從redo組刪除文件

SQL> alter database drop logfile member '/home/oradata/JYZHAO/onlinelog/redo05c.log';

Database altered.

5.5修改redo文件大小

刪除老日志組,新建日志組。

參見隨筆:http://www.cnblogs.com/jyzhao/p/3781016.html

6.Oracle undo表空間管理

6.1新建undo表空間

SQL> create undo tablespace undo_jingyu datafile '/home/oradata/JYZHAO/datafile/undo_jingyu01.dbf' size 30G autoextend off;

Tablespace created.

6.2切換undo表空間

SQL> set linesize 150
SQL> show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS1
SQL> alter system set undo_tablespace=undo_jingyu;

System altered.

SQL> show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDO_JINGYU

6.3ORACLE在線切換undo表空間其他注意事項:

參見轉載文章:http://www.cnblogs.com/jyzhao/articles/3793643.html

6.4undo表空間的真實使用情況:

SELECT DISTINCT STATUS, SUM(BYTES)/1024/1024 "Size(MB)", COUNT(*)     
FROM DBA_UNDO_EXTENTS GROUP BY STATUS;  

 

7.Oracle 普通表空間和數據文件

7.1新建表空間

SQL> create tablespace dbs_d_jingyu datafile '/home/oradata/JYZHAO/datafile/dbs_d_jingyu01.dbf' size 20G autoextend off;

Tablespace created.

7.2表空間增加數據文件

SQL> alter tablespace dbs_d_jingyu add datafile '/home/oradata/JYZHAO/datafile/dbs_d_jingyu02.dbf' size 30G autoextend off;

Tablespace altered.

7.3表空間刪除數據文件

SQL> alter tablespace dbs_d_jingyu drop datafile '/home/oradata/JYZHAO/datafile/dbs_d_jingyu02.dbf';

Tablespace altered.

7.4修改數據文件的大小

SQL> alter database  datafile '/home/oradata/JYZHAO/datafile/dbs_d_jingyu01.dbf' resize 30G;

Database altered.

7.5刪除表空間及其包含的數據文件

SQL> drop tablespace dbs_d_jingyu including contents and datafiles;

Tablespace dropped.

Oracle 查詢表空間使用率的SQL語句

8.Oracle 臨時表空間

8.1新建臨時表空間

SQL> create temporary tablespace temp_jingyu tempfile '/home/oradata/JYZHAO/datafile/temp_jingyu01.tmp' size 30G;

Tablespace created.

8.2臨時表空間增加臨時文件

SQL> alter tablespace temp_jingyu add tempfile '/home/oradata/JYZHAO/datafile/temp_jingyu02.tmp' size 30G;

Tablespace altered.

8.3切換數據庫臨時表空間為temp_jingyu

SQL> col property_value for a30
SQL> set linesize 180
SQL> select property_value, property_name from database_properties where property_name like '%TABLESPACE';

PROPERTY_VALUE                 PROPERTY_NAME
------------------------------ ------------------------------
TEMP                           DEFAULT_TEMP_TABLESPACE
USERS                          DEFAULT_PERMANENT_TABLESPACE

SQL> alter database default temporary tablespace temp_jingyu;

Database altered.

SQL>  select property_value, property_name from database_properties where property_name like '%TABLESPACE';

PROPERTY_VALUE                 PROPERTY_NAME
------------------------------ ------------------------------
TEMP_JINGYU                    DEFAULT_TEMP_TABLESPACE
USERS                          DEFAULT_PERMANENT_TABLESPACE

9.Oracle 鎖管理

9.1確定鎖進程的sid

select t2.username, t2.sid, t2.serial#, t2.logon_time
  from v$locked_object t1, v$session t2 where t1.session_id = t2.sid
 order by t2.logon_time;

9.2通過sid獲得它的sql,看是哪一條sql導致鎖的占用

SELECT sql_text
  FROM v$sql t1, v$session t2
 WHERE t1.address = t2.sql_address
   AND t2.sid = &sid;  --&sid 就是上一條sql中查到的sid

9.3如有記錄則表示有lock,記錄下SID和serial# ,執行下面的sql,即可解除鎖

alter system kill session 'SID,serial#';

10.Oracle用戶管理

10.1新建用戶

SQL>  create user jingyu identified by jyzhao default tablespace dbs_d_jingyu;

User created.

10.2授權

SQL> conn /as sysdba
Connected.
SQL> grant connect, resource to jingyu;

Grant succeeded.

SQL> grant dba to jingyu;

Grant succeeded.

查看用戶當前擁有的角色:

SQL> conn jingyu/jyzhao
Connected.
SQL> select * from user_role_privs;

USERNAME                       GRANTED_ROLE                   ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
JINGYU                         CONNECT                        NO  YES NO
JINGYU                         DBA                            NO  YES NO
JINGYU                         RESOURCE                       NO  YES NO

10.3密碼永不過期

SQL> alter profile default limit PASSWORD_LIFE_TIME unlimited; 

Profile altered.

10.4錯誤密碼不鎖定

SQL> alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;

Profile altered.

11.Oracle等待事件

select event, count(1) from v$session group by event order by 2 desc;
 select event, WAIT_CLASS, count(1) from v$session group by event, WAIT_CLASS order by 2,3 desc;

關於Oracle的等待事件可參見隨筆:Oracle Tuning 基礎概述01 - Oracle 常見等待事件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM