数据库操作相关
数据库名:testdb
DBA登录system用户,密码888888 所有默认账户密码为888888
/**************************创建xj_test账户 begin****************************/
--1:创建临时表空间:
CREATE TEMPORARY TABLESPACE XJ_TEST_TEMP_TABSPACE TEMPFILE 'D:\ProgramFiles\oracle\oradata\TESTDB\XJ_TEST_TEMP_TABSPACE.dbf' SIZE 2048M AUTOEXTEND ON NEXT 512M MAXSIZE 6144M EXTENT MANAGEMENT LOCAL;
--2:创建用户表空间:
CREATE TABLESPACE XJ_TEST_TABSPACE LOGGING DATAFILE 'D:\ProgramFiles\oracle\oradata\TESTDB\XJ_TEST_TABSPACE.dbf' SIZE 6144M AUTOEXTEND ON NEXT 512M MAXSIZE 8192M EXTENT MANAGEMENT LOCAL;
--3:创建用户并制定表空间:
CREATE USER XJ_TEST IDENTIFIED BY 888888 DEFAULT TABLESPACE XJ_TEST_TABSPACE; --TEMPORARY TABLESPACE OA_TEMP;
--4:用户授权:
GRANT CREATE SESSION,CREATE ANY TABLE,CREATE ANY VIEW,CREATE ANY INDEX, CREATE ANY PROCEDURE,ALTER ANY TABLE,ALTER ANY PROCEDURE,DROP ANY TABLE, DROP ANY VIEW,DROP ANY INDEX,DROP ANY PROCEDURE,SELECT ANY TABLE, INSERT ANY TABLE,UPDATE ANY TABLE,DELETE ANY TABLE, CONNECT,RESOURCE,DBA TO XJ_TEST;
/**************************创建xj_test账户 end ****************************/
将dmp数据文件导入数据库:
Directories: DATA_PUMP_DIR :D:\ProgramFiles\oracle\admin\TESTDB\dpdump
文件名:suncrs20170317.dmp
--将suncrs20170317.dmp文件中表空间suncrs下JIANGYIN用户的数据导入表空间XJ_TEST_TABSPACE下XJ_TEST账户
impdp xj_test/888888@127.0.0.1:1521/testdb directory=DATA_PUMP_DIR dumpfile=suncrs20170317.dmp REMAP_SCHEMA=suncrs:xj_test remap_tablespace=suncrs:XJ_TEST_TABSPACE logfile=testimpdp.log TABLE_EXISTS_ACTION=TRUNCATE full=y
--CMD连接数据库
--通过服务名连接数据库
sqlplus userName/userPassword@netServiceName;
--通过IP 连接数据库:
sqlplus userName/userPassword@//IP:port/SID;
--查询数据库字符集
select * from V$NLS_PARAMETERS
--查询数据库所有当前连接的用户:
select v.USERNAME, v.SID, v.SERIAL# from v$session v;
--杀死 kill 目标用户
alter system kill session 'sid, serial#'; alter system kill session '13,2'; alter system kill session '15,8'; alter system kill session '125,1714'; alter system kill session '133,5'; alter system kill session '141,5'; alter system kill session '144,11899';
--删除用户
drop user XJ_TEST cascade; drop user suncrs cascade;
--删除表空间
DROP TABLESPACE XJ_TEST_TABSPACE INCLUDING CONTENTS AND DATAFILES;
查询表空间使用情况:
SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比", F.TOTAL_BYTES "空闲空间(M)", F.MAX_BYTES "最大块(M)" FROM (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES, ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES FROM SYS.DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F, (SELECT DD.TABLESPACE_NAME, ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB FROM SYS.DBA_DATA_FILES DD GROUP BY DD.TABLESPACE_NAME) D WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME ORDER BY 1;
表空间扩容
第一步:查看表空间的名字及文件所在位置:
select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name
第二步:增大所需表空间大小
alter database datafile '表空间位置'resize 新的尺寸。
例如:alter database datafile '\oracle\oradata\anita_2008.dbf' resize 4000m。
第三步:设置表空间自动扩展:
alter database datafile '\oracle\oradata\anita_2008.dbf' autoextend on next 100m maxsize 10000m
--修改数据库字符集
oracle数据库的字符集更改
A、oracle server 端 字符集查询
select userenv('language') from dual
其中NLS_CHARACTERSET 为server端字符集
NLS_LANGUAGE 为 server端字符显示形式
B、查询oracle client端的字符集
$echo $NLS_LANG
如果发现你select 出来的数据是乱码,请把client端的字符集配置成与linux操作系统相同的字符集。如果还是有乱码,则有可能是数据库中的数据存在问题,或者是oracle服务端的配置存在问题。
C、server端字符集修改
*****************************************************************
* 更改字符集步骤方法(WE8ISO8859P1 --> ZHS16GBK) *
*****************************************************************
SQL>
将数据库启动到RESTRICTED模式下做字符集更改:
SQL> conn /as sysdba
Connected.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
System altered.
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
System altered.
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
System altered.
SQL> alter database open;
Database altered.
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
ALTER DATABASE CHARACTER SET ZHS16GBK
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
Database altered.
SQL> select * from v$nls_parameters;
略
19 rows selected.
重启检查是否更改完成:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
SQL> select * from v$nls_parameters;
略
19 rows selected.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D、client端字符集修改
在 /home/oracle与 /root用户目录下的.bash_profile中
添加或修改 export NLS_LANG="AMERICAN_AMERICA.UTF8" 语句
关闭当前ssh窗口。
浙公网安备 33010602011771号