---查看oracle数据库的字符集 SQL> select userenv('language') from dual; ---查看oracle数据库的编码 SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'; [oracledb@ ~]$ set NLS_LANG=AMERICAN_AMERICA.AL32UTF8 #windows_os [oracledb@ ~]$ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 #linux_os
3、创建库对应的用户信息
SQL> create temporary tablespace SIDNAME_temp tempfile '/u01/oracle/oradata/SIDNAME/SIDNAME_temp.dbf 'size 64m autoextend on next 64m maxsize unlimited extent management local; SQL> create tablespace SIDNAME_data logging datafile '/u01/oracle/oradata/SIDNAME/SIDNAME_data.dbf' size 64m autoextend on next 64m maxsize 2048m extent management local; SQL> create user USERNAME identified by USERPASSWORD default tablespace SIDNAME_data temporary tablespace SIDNAME_temp; SQL> grant connect,resource to USERNAME; SQL> grant create view to USERNAME; SQL> grant unlimited tablespace to USERNAME; SQL> grant create public synonym to USERNAME; SQL> grant drop public synonym to USERNAME; SQL> create or replace directory dir_dump as '/u01/oracle/backup'; SQL> grant read,write on directory dir_dump to USERNAME; SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; —根据实例环境修改processes与sessions参数值(需要重启oracle数据库)
SQL> alter system set processes=1000 scope=spfile; SQL> alter system set sessions=1105 scope=spfile; 知识点:
---查询当前oracle的并发连接数: SQL> select count(*) from v$session where status='ACTIVE'; ---查看不同用户的连接数: SQL> select username,count(username) from v$session where username is not null group by username; ---查看所有用户: select * from all_users; --当前的连接数 select count(*) from v$process; --数据库允许的最大连接数 select value from v$parameter where name = 'processes';
三、数据库的还原与备份命令
查看expdp导出备份存储路径:
sql> select * from dba_directories; 1、针对整个库备份与还原操作
#查看DB中的NLS_CHARACTERSET的值 SQL> select * from v$nls_parameters where parameter='NLS_CHARACTERSET'; SQL> select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET';
12)扩展12
@echo off rem ---- dmp backup directory, same as dump dir set backup_dir=e:apporaclebackup rem ---- today, day for dmp file remaining set day=%date:~0,4%%date:~5,2%%date:~8,2% set remain_day=7 rem --- delete files before 7 days forfiles /p "%backup_dir%" /d -%remain_day% /c "cmd /c del /f @path" rem --- export oracle data to dmp file expdp 用户名/"xxx@yyy"@orcl directory=dir_dump dumpfile=用户名_%day%.dmp logfile=用户名_%day%.log schemas=用户名 parallel=4 compression=ALL rem --- sqlplus conn sqlplus 用户名/"""xxx@yyy"""@orcl rem ---- if compress the dumpfile and delete source dumpfile, unmark rem set rar="C:Program Files (x86)WinRARWinRAR.exe" %rar% a -df %backup_dir%用户名_%day%.rar %backup_dir%用户名_%day%.dmp %backup_dir%用户名_%day%.log 四、清理(还原时出错,清用户表空间)
1、删除数据表空间:
#执行语句: [oracledb@ ~]$ sqlplus / as sysdba SQL> drop tablespace mepro_data including contents and datafiles cascade constraint;
2、删除临时表空间:
#执行语句: SQL> drop tablespace mepro_temp including contents and datafiles cascade constraints;
3、删除用户:
#执行语句: SQL> drop user srmhdld cascade;
4、报用户正在连接,无法删除的解决方法
---方法1:重启并迅速执行drop user语句(个人推荐) SQL> shutdown immediate; SQL> startup ---方法2:删除正在连接的session(连接的session连接着很多时,清理耗时,没有方法1快速) ---查询用户会话 SQL> select username,serial#,sid,program,machine,status from v$session where username='USERNAME' AND STATUS='ACTIVE';; SQL> select saddr,sid,serial#,paddr,username,status from v$session where username is not null; ---删除相关用户会话 SQL> alter system kill session 'serial#, sid';