Oracle DB 操作问题总结

一、备份DB
首先设置Oracle环境(ORACLE_HOME,ORACLE_SID)

引用
Connected to an idle instance.
这是环境设置有问题,修改正确即可,参照:
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1/
export ORACLE_SID=hub
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/opmn/bin:$ORACLE_HOME/OPatch/:$PATH


然后给数据库用户OSL建立备份文件以及赋予相应的权限,再用expdp命令备份
$sqlplus /nolog
SQL> conn /as sysdba
SQL> CREATE OR REPLACE DIRECTORY dir_dump AS '/home/oracle/dump';
SQL> GRANT read,write ON DIRECTORY dir_dump TO OSL;
SQL> exit

(查询已有的directory:select * from dba_directories;)

$expdp OSL/OSL@osl DIRECTORY=dir_dump DUMPFILE=X0326.dmp LOGFILE=X0326.log


恢复备份
impdp OSL/OSL@osl DIRECTORY=dir_dump DUMPFILE=X0326.dmp


自动备份
在当前用户下建立一个文件DB_AutoBackup_cron:
5 * * * * /home/oracle/DB_AutoBackup.sh

引用
crontab中处理的文件格式为 分钟 小时 日期 月 星期 执行的文件名 *代表所有条件,5 * * * * 表示第5分钟。
# 文件格式说明
#  ——分钟 (0 - 59)
# |  ——小时 (0 - 23)
# | |  ——日   (1 - 31)
# | | |  ——月   (1 - 12)
# | | | |  ——星期 (0 - 7)(星期日=0或7)
# | | | | |
# * * * * * 被执行的命令


在DB_AutoBackup.sh中:
#Oracle environment
source db.env

#backup time
BTime=`date +%Y%m%d`
echo $BTime

#expdp username/passwd@SID/servername

#LT&LT Admin
expdp OSL/OSL@hub DIRECTORY=dir_dump DUMPFILE=DB_$BTime.dmp LOGFILE=DB_$BTime.log


注意:`date +%Y%m%d`这儿是用的反引号,Esc下面的`,非单引号';另外一种写法$(date +%Y%m%d)。

然后运行crontab:
crontab DB_AutoBackup_cron

引用
  crontab [-u user] file
        crontab [-u user] [ -e | -l | -r ]
                (default operation is replace, per 1003.2)
        -e      (edit user's crontab)
        -l      (list user's crontab)
        -r      (delete user's crontab)
        -i      (prompt before deleting user's crontab)
        -s      (selinux context)



Drop user
drop user xxx cascade

如果不成功
关闭db监听, 重启数据库(不启动监听)即可
lsnrctl stop


Create tablespace
CREATE TABLESPACE xxx_DATA DATAFILE 'xxx_DATA.dat' SIZE 500K REUSE AUTOEXTEND ON NEXT 500K MAXSIZE 100M;


Create user
create user User identified by "passwd" default tablespace User_DATA;
grant connect to User;
grant resource to User;
grant create tablespace to User;
grant create view to User;
grant create sequence to User;


Modify tablespace size
alter database datafile 'oslfucn.dat' resize 100M;



二、如何把dump文件导入到不同用户(schema)不同表空间时,用如下参数即可:
REMAP_TABLESPACE
Default: There is no default

Purpose
Remaps all objects selected for import with persistent data in the source tablespace to be created in the target tablespace.

Syntax and Description
REMAP_TABLESPACE=source_tablespace:target_tablespace
Multiple REMAP_TABLESPACE parameters can be specified, but no two can have the same source tablespace. The target schema must have sufficient quota in the target tablespace.

REMAP_SCHEMA
Default: There is no default

Purpose
Loads all objects from the source schema into a target schema.

Syntax and Description
REMAP_SCHEMA=source_schema:target_schema
Multiple REMAP_SCHEMA lines can be specified, but the source schema must be different for each one. However, different source schemas can map to the same target schema. The mapping may not be 100 percent complete, because there are certain schema references that Import is not capable of finding. For example, Import will not find schema references embedded within the body of definitions of types, views, procedures, and packages.

For example:
impdp system/passwd remap_schema=olderSchema:newSchema REMAP_TABLESPACE=olderSpace:newSpace DIRECTORY=DATA_DUMP_DIR DUMPFILE=***.dmp


Other parameters:
REMAP_DATA
REMAP_DATAFILE
REMAP_TABLE


三、启动关闭服务命令详解
1、SHUTDOWN有四个参数:NORMAL、TRANSACTIONAL、IMMEDIATE、ABORT。缺省不带任何参数时表示是NORMAL。
SHUTDOWN NORMAL:不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
SHUTDOWN TRANSACTIONAL:不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
SHUTDOWN IMMEDIATE:不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动rollback的。启动时不需要实例恢复。
SHUTDOWN ABORT:不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。
另外,对于NORMAL、TRANSACTIONAL、IMMEDIATE,DB Buffer Cache的内容写入了数据文件,没有提交的事务被回滚,所有的资源被释放,数据库被“干净”的关闭。
对于ABORT,DB Buffer Cache的内容没有写入数据文件,没有提交的事务也没有回滚。数据库没有dismount和关闭,数据文件也没有关闭。当数据库启动时,需要通过redo log恢复数据,通过回滚段对事务回滚,对资源进行释放。

2、STARTUP [FORCE] [RESTRICT] [PFILE= filename] [OPEN [RECOVER][ database] | MOUNT | NOMOUNT]
STARTUP OPEN:STARTUP缺省的参数就是OPEN,打开数据库,允许数据库的访问。当前实例的控制文件中所描述的所有文件都已经打开。
STARTUP MOUNT:MOUNT数据库,仅仅给DBA进行管理操作,不允许数据库的用户访问。仅仅只是当前实例的控制文件被打开,数据文件未打开。
STARTUP NOMOUNT:仅仅通过初始化文件,分配出SGA区,启动数据库后台进程,没有打开控制文件和数据文件。不能任何访问数据库。
STARTUP PFILE= filename:以filename为初始化文件启动数据库,不是采用缺省初始化文件。
STARTUP FORCE:中止当前数据库的运行,并开始重新正常的启动数据库。
STARTUP RESTRICT:只允许具有RESTRICTED SESSION权限的用户访问数据库。
STARTUP RECOVER:数据库启动,并开始介质恢复。

四、drop all tables and sequences in oracle

tables:
SELECT 'DROP TABLE ' || TABLE_NAME || ' CASCADE CONSTRAINTS;' FROM user_tables;


sequences:
SELECT 'DROP SEQUENCE ' || sequence_name || ';' FROM user_sequences;



五、字符集问题
查询字符集
select * from nls_database_parameters
NLS_NCHAR_CHARACTERSET
AL16UTF16


六、查询被锁的表及进程的方法介绍
查看被锁的表
select p.spid,a.serial#, c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$process p,v$session a, v$locked_object b,all_objects c where p.addr=a.paddr and a.process=b.process and c.object_id=b.object_id


查看连接的进程

SELECT sid, serial#, username, osuser FROM v$session;


杀掉进程

alter system kill session 'sid,serial#';


查看当前用户下表的占用空间

Select Segment_Name, Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name


查询所有对象占用空间

select owner, segment_name,sum(bytes/1024/1024)   from   dba_segments   
group by owner,segment_name


查询数据库中各对象占用空间大小
Select Segment_Name,b.object_type, Sum(bytes)/1024/1024 From User_Extents a,user_objects b
where a.segment_name=b.object_name Group By Segment_Name,b.object_type order by object_type, Segment_Name


oracle中去除字段中的回车符
update ywj_yxglobj set table_name = replace(table_name,chr(10),'')
where table_name like 'ACCT_INFO%'


其他常见ca
启动EM控制台:
$ORACLE_HOME/bin/emctl start dbconsole


其他常见操作
启动EM控制台:
$ORACLE_HOME/bin/emctl start dbconsole


修改用户密码过期为永不过期
select * from dba_profiles
where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';
alter profile default limit password_life_time unlimited;

修改用户密码
alter user username identified by password;



你可能感兴趣的:(oracle,sql,linux,cache)