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
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
未完,待续.....