Oracle 常用命令笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 常用命令笔记相关的知识,希望对你有一定的参考价值。

命令
说明
crsctl start has    

启动数据库HAS服务。
crsctl stat res -t    

检查ASM中的各服务(DG、监听、ASM实例等)状态。
srvctl status asm    

查看ASM实例状态,正常情况下主备机的ASM实例都应该处于启动状态。
srvctl start asm    

启动ASM实例。

srvctl stop asm    

停止ASM实例。

srvctl status diskgroup -g dgname    
查看数据库DG状态。

例如:srvctl status diskgroup -g dg_ora
srvctl stop diskgroup -g dgname    
停止数据库DG。
srvctl start diskgroup -g dgname    
启动数据库DG。
srvctl enable diskgroup -g dgname    
激活数据库。
srvctl disable diskgroup -g dgname    
去激活数据库。
SQL> alter diskgroup dgname mount;    
挂载数据库DG。
SQL> alter diskgroup dgname unmount;    
卸载数据库DG。
SQL> select name,state,type,total_mb,free_mb from v$asm_diskgroup;    

查询数据库DG名称、类型、状态、总空间和剩余空间。

SQL> select name,group_number,path,mode_status,state from v$asm_disk;    

查询数据库DG的名称、路径、状态。
ASMCMD工具    

在grid用户下执行asmcmd进入工具界面,ASMCMD工具提供了cd、cp、du、find、ls、pwd、rm、mkdir等常用命令,可以通过“help+命令”的方式查看命令的详细解释。
SQL> select instance_name from v$instance;    

查询ASM实例名称。

查询实例和数据库状态。

SQL> select status from v$instance;
“STATUS”的值应为“OPEN”。

SQL> select open_mode from v$database;

“open_mode”的值应为“READ WRITE”。查询数据库实例。

SQL> select INSTANCE_NAME from v$instance;

操作步骤

    以Oracle用户登录主机。
    连接数据库。

    % sqlplus "/as sysdba"

    查看数据库字符集。

    SQL> select userenv('language') from dual;

    显示如下信息。

    AMERICAN_AMERICA.WE8ISO8859P1

    查看数据库使用字符集。

    SQL> select value  from nls_database_parameters  Where PARAMETER= 'NLS_CHARACTERSET';

    修改数据库字符集。
        关闭数据库。

        SQL>  shutdown immediate;

        启动数据库。

        SQL> startup mount;

        修改字符集。

        SQL> ALTER SESSION SET SQL_TRACE=TRUE;

        SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

        SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

        SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

        SQL> ALTER DATABASE OPEN;

        SQL> set linesize 120;
        SQL> alter database character set AL32UTF8;

        ORA-12712: new character set must be a superset of old character set
        ERROR at line 1:                                
        可忽略上述错误
        SQL> ALTER DATABASE character set INTERNAL_USE AL32UTF8;

        SQL> ALTER SESSION SET SQL_TRACE=FALSE;

        重启数据库

        SQL> shutdown immediate;

        SQL> STARTUP;

    查看字符集。

    SQL> select userenv('language') from dual;

    显示如下信息表明修改字符集成功。

    USERENV('LANGUAGE')
    ----------------------------------------------------
    AMERICAN_AMERICA.AL32UTF8

    SQL> select value from nls_database_parameters Where PARAMETER= 'NLS_CHARACTERSET';

    显示如下信息表明修改字符集成功。

    VALUE
    -------------
    AL32UTF8
    
检查数据库表空间是否创建         

select TABLESPACE_NAME, STATUS from dba_tablespaces;

数据库归档模式
select log_mode from v$database;

开启数据库归档模式:

    关闭数据库

    SQL> shutdown immediate;

    SQL> exit

    重启数据库开启归档模式。

    sqlplus "/as sysdba"

    SQL> startup mount;

    SQL> alter database archivelog;

    SQL> alter database open;
检查Oracle数据库时区
SQL> SELECT dbtimezone FROM DUAL;
修改Oracle数据库时区,需重启数据库
SQL> ALTER DATABASE SET TIME_ZONE = 'Asia/Shanghai';

SQL> select * from V$TIMEZONE_NAMES;

显示修改后时间
SQL> select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss ') from dual;

查看数据库用户。

SQL>select username from all_users;

SQL> drop user username cascade;

    修改oracle自动定时任务的默认时区。

    SQL> exec DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE('default_timezone','Asia/Shanghai');
    修改Oracle的日期格式。

    SQL> alter system set NLS_DATE_FORMAT='MM/DD/YYYY HH24:MI:SS' scope=spfile;

修改日志相关参数。

    修改归档日志文件路径。

    SQL> alter system set db_recovery_file_dest='' scope=spfile;

    SQL> alter system set log_archive_dest_1='LOCATION=+DG_BACKUP' scope=spfile;
    修改强制日志切换设置。

    SQL> alter system set ARCHIVE_LAG_TARGET = 7200 scope = both;
    修改log_buffer的值(单位是byte)。

    SQL> alter system set log_buffer = 3145728 scope = spfile;

    “log_buffer”的范围在3M至128M。
修改数据库连接相关参数。

    修改数据库连接方式。

    SQL> alter system set SHARED_SERVERS = 0 scope=both;
    修改open_link连接数。

    SQL> alter system set open_links=10 scope=spfile;

    SQL> alter system set open_links_per_instance=10 scope=spfile;

关闭数据库回收站。

SQL> alter system set recyclebin=off scope=spfile;

修改其他参数。

    修改“sec_case_sensitive_logon”参数,关闭区分口令大小写功能。

    SQL> alter system set sec_case_sensitive_logon = false scope=spfile;
    修改数据库鉴权参数。

    SQL> alter system set remote_login_passwordfile = EXCLUSIVE scope=spfile;

    SQL> alter system set remote_listener='';
    修改workarea_size_policy。

    SQL> alter system set workarea_size_policy=AUTO scope = spfile;
    修改pre_page_sga。

    SQL> alter system set pre_page_sga = false scope = spfile;

关闭数据库。

SQL> shutdown immediate;

SQL> exit;

已实现自动配置的数据库参数。

    以oracle用户登录。
    编辑“sqlnet.ora”文件。
        新建或修改“sqlnet.ora”文件。

        % vi $ORACLE_HOME/network/admin/sqlnet.ora
        在文件中添加如下内容:

        DIAG_ADR_ENABLED=OFF
    修改“deferred_segment_creation”参数,空表和非空表都分配segment。

    SQL> alter system set DEFERRED_SEGMENT_CREATION=false scope=spfile;
    修改“optimizer_use_invisible_indexes”参数,使优化器忽略“invisible index”。

    SQL> alter system set optimizer_use_invisible_indexes = false scope=spfile;
    修改“audit_trail”参数,关闭数据库审计功能。

    SQL> alter system set audit_trail=none scope=spfile;
    修改“parallel_force_local”参数。

    SQL> alter system set parallel_force_local=true scope= spfile;
    修改“_gc_policy_time”参数,关闭DRM(Dynamic Resource mastering)功能。

    SQL> alter system set "_gc_policy_time"=0 scope= spfile;
    修改“cursor_sharing”相关参数,关闭ACS(Adaptive Cursor Sharing)功能。

    SQL> alter system set "_optimizer_extended_cursor_sharing_rel"=none scope= spfile;

    SQL> alter system set "_optimizer_extended_cursor_sharing"=none scope = spfile;

    SQL> alter system set "_optimizer_adaptive_cursor_sharing"=false scope=spfile;
    修改open_cursors。

    SQL> alter system set open_cursors = 480 scope = spfile;

    “open_cursors”的值需要大于等于350。

以上是关于Oracle 常用命令笔记的主要内容,如果未能解决你的问题,请参考以下文章

干货-Oracle里的常用命令

Oracle数据库基本常用命令汇总

谁能告诉我oracle数据库常用命令啊?

Oracle SQL*plus常用的命令和函数

Oracle常用命令

Oracle学习笔记