Oracle11g常用基本操作命令

  这里是单实例数据库情况下:

1、启动监听

  启动监听,即启动1521监听端口号:

lsnrctl start   #启动监听
lsnrctl stop     #停止监听 
lsnrctl status   #查看监听状态 

  

  监听端口1521修改:

# su - oracle
$ lsnrctl stop
$ echo $ORACLE_HOME
$ cd $ORACLE_HOME/network/admin
$ vim listener.ora
# listener.ora Network Configuration File: /home/data/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC6666))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 6666))
    )
  )

ADR_BASE_LISTENER = /home/data/oracle
直接在此处修改是不生效的,我们还需要修改local_listener参数
$ sqlplus / as sysdba    
SQL> show parameter local_listener   #登录并查看local_listener参数
//由于开始的时候使用的是默认值,这个时候VALUE这个值应该是空的,这里修改local_listener参数
SQL> alter system set local_listener="(address = (protocol = tcp)(host = 10.10.16.245)(port = 6666))"; 
SQL> show parameter local_listener #查看local_listener参数
$ lsnrctl start #重新启动监听
$ netstat -an|grep 6666  #查看状态
$ lsnrctl status
$ su - root   #防火墙端口开放
# /sbin/iptables -I INPUT -p tcp --dport 6666 -j ACCEPT
# /etc/rc.d/init.d/iptables save
#到此oracle的监听端口号就已经由原来的1521变成6666
View Code

2、启动数据库

  启动数据库有两种方式,一种是登录sqlplus执行startup;另一种是使用dbstart  //启动数据库脚本

用oracle用户进入
# su - oracle
$ sqlplus /nolog #运行sqlplus命令,进入sqlplus环境,nolog参数表示不登录;
SQL> conn /as sysdba  #以管理员模式进入
SQL > startup;   #启动数据库
SQL > SHUTDOWN IMMEDIATE   #停止数据库

远程连接数据库
sqlplus /nolog
conn sys/sys@IP:1521/orainstance as sysdba

也可以直接运行:
dbstart    //启动数据库脚本 
dbshut     //停止数据库脚本 

3、用户管理

  创建普通用户,权限相关:

创建用户:
SQL> create user "username" identified by "userpasswd" ; #注:后面可带表空间
删除用户:
SQL> drop user “username” cascade;  #注:cascade 参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数 
授权用户:
SQL> grant connect,resource,dba to "username" ;
查看当前用户的角色
SQL> select * from user_role_privs;
SQL> select * from session_privs; 
查看当前用户的系统权限和表级权限
SQL> select * from user_sys_privs;
SQL> select * from user_tab_privs;
查询用户表
SQL> select username from dba_users; 
修改用户口令
SQL> alter user "username" identified by "password"; 
显示当前用户
SQL> show user;

4、表和表空间

创建表空间
SQL> CREATE TABLESPACE data01 DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M;
删除表空间
SQL> DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;
修改表空间大小
SQL> alter database datafile '/path/NADDate05.dbf' resize 100M;
增加表空间 
SQL> ALTER TABLESPACE NEWCCS ADD DATAFILE '/u03/oradata/newccs/newccs04.dbf' SIZE 4896M; 
查询数据库文件
SQL> select * from dba_data_files; 
查询当前存在的表空间
SQL> select * from v$tablespace;
表空间情况
SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;
查询表空间剩余空间
SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;
查看表结构
SQL> desc table;
修改连接数:要重启数据库
SQL> alter system set processes=1000 scope=spfile;
SQL> shutdown immediate;
SQL> startup;
查看用户当前连接数
SQL> select count(*) from sys.v_$session;

5、修改字符集相关

 将数据库启动到RESTRICTED模式下做字符集更改:

$ sqlplus / as sysdba
SQL> select * from v$nls_parameters; #查看当前系统使用的各种字符集
SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'; #精确查询NLS_CHARACTERSET值
SQL> shutdown immediate; #关闭数据库 
SQL> startup mount #启动实例,可以加载数据库,不运行数据库 
DBA在做一些操作的时候不希望有人登入数据库可以使用restrict模式: 
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; #开启限制会话模式 
Oracle job进程,包含协调进程(主进程)以及奴隶进程(子进程),job_queue_processes取值范围为0到1000,总共可创建多少个job进程由job_queue_processes参数来决定。job_queue_processes为0的时候则任意方式创建的job都不会运行: 
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; #指定队列监视进程个数,默认值为0,最大值为10 
SQL> alter database open; #mount状态打开数据库 
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; #跳过字符集超集的检查做更改 
SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';#重新检查是否更改完成
SQL> shutdown immediate;
SQL> startup

6、查看/修改连接数和会话数

查看oracle最大连接数和session: 
SQL> select value from v$parameter where name = ‘processes’; 
SQL> show parameter sessions
查看当前连接数 
SQL> select count(*) from v$process;
查看当前会话数: 
SQL> select count(*) from v$session;
SQL> alter system set processes=800 scope=spfile; 
SQL> alter system set sessions=885 scope=spfile; 
一般设置为800比较合适,session为连接数的1.1*processes+5,设置之后必须重启oracle。 
重启数据库: 

7、Oracle数据导入、导出

  oracle11g数据库的导入/导出,就是我们通常所说的oracle数据的还原/备份,数据库导入:把.dmp 格式文件从本地导入到数据库服务器中(本地oracle测试数据库中);数据库导出:把数据库服务器中的数据(本地oracle测试数据库中的数据),导出到本地生成.dmp格式文件。.dmp 格式文件就是oracle数据的文件格式。

impdp & expdp的用法:
导入过程中不创建索引,导入除索引外的其它所有对象
impdp 用户/密码@sid  directory=定义备份路径 dumpfile=备份的数据.dmp  schemas=导入用户  exclude=index
创建索引,仅仅导入索引
impdp 用户/密码@sid directory=定义备份路径 dumpfile=备份的数据.dmp  schemas=导入用户  include=index
导出数据
expdp 用户/密码@sid directory=定义备份路径  dumpfile=数据名称.dmp schemas=备份用户  logfile=日志.log

  未完,待续.....

  

 

posted @ 2019-03-13 13:54  淺景尘  阅读(1799)  评论(0编辑  收藏  举报
TOP