首页 > 代码库 > Oracle常用管理命令总结
Oracle常用管理命令总结
概览:
1.Oracle 内存管理
2.Oracle 数据库启动关闭
3.Oracle 参数文件
4.Oracle 控制文件
5.Oracle redo日志文件
6.Oracle undo表空间管理
7.Oracle 普通表空间和数据文件
8.Oracle 临时表空间
9.Oracle 锁管理
10.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 FALSEpre_page_sga boolean FALSEsga_max_size big integer 748Msga_target big integer 4M --说明粒度最小为4M.
1.3修改pga大小
SQL> alter system set pga_aggregate_target = 1M;System altered.SQL> show parameter pgaNAME TYPE VALUE------------------------------------ ----------- ------------------------------pga_aggregate_target big integer 1M
1.4查看当前数据库内存设定情况
SQL> show parameter memoryNAME TYPE VALUE------------------------------------ ----------- ------------------------------hi_shared_memory_address integer 0memory_max_target big integer 748Mmemory_target big integer 748Mshared_memory_address integer 0SQL> show parameter sgaNAME TYPE VALUE------------------------------------ ----------- ------------------------------lock_sga boolean FALSEpre_page_sga boolean FALSEsga_max_size big integer 748Msga_target big integer 4MSQL> show parameter pgaNAME 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 -lhtotal 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,只有在用pfile启动数据库时才可以执行此操作
SQL> startup pfile=‘$ORACLE_HOME/dbs/initjyzhao.ora‘;ORACLE instance started.Total System Global Area 780824576 bytesFixed Size 2232432 bytesVariable Size 629149584 bytesDatabase Buffers 142606336 bytesRedo Buffers 6836224 bytesDatabase 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 150SQL> show parameter undoNAME TYPE VALUE------------------------------------ ----------- ------------------------------undo_management string AUTOundo_retention integer 900undo_tablespace string UNDOTBS1SQL> alter system set undo_tablespace=undo_jingyu;System altered.SQL> show parameter undoNAME TYPE VALUE------------------------------------ ----------- ------------------------------undo_management string AUTOundo_retention integer 900undo_tablespace string UNDO_JINGYU
6.3ORACLE在线切换undo表空间其他注意事项:
参见转载文章:http://www.cnblogs.com/jyzhao/articles/3793643.html
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.
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 a30SQL> set linesize 180SQL> select property_value, property_name from database_properties where property_name like ‘%TABLESPACE‘;PROPERTY_VALUE PROPERTY_NAME------------------------------ ------------------------------TEMP DEFAULT_TEMP_TABLESPACEUSERS DEFAULT_PERMANENT_TABLESPACESQL> 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_TABLESPACEUSERS 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 sysdbaConnected.SQL> grant connect, resource to jingyu;Grant succeeded.SQL> grant dba to jingyu;Grant succeeded.
查看用户当前拥有的角色:
SQL> conn jingyu/jyzhaoConnected.SQL> select * from user_role_privs;USERNAME GRANTED_ROLE ADM DEF OS_------------------------------ ------------------------------ --- --- ---JINGYU CONNECT NO YES NOJINGYU DBA NO YES NOJINGYU 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.