数据库相关操作-持续更新

来源:互联网 发布:淘宝虚拟物品怎么卖 编辑:程序博客网 时间:2024/05/16 06:37
DB2相关操作:

1.DB2数据库备份和恢复:
a表结构的导出:db2look -d 数据库名 -td @ -e -o xxx.ddl
b数据导出:db2move 数据库名 export
c表结构恢复:db2look -td@ -vf xxx.ddl
d数据恢复:db2move 数据库名 load(需要cd到.ixf文件所在文件目录下操作)

Oracle SQL developer配置连接:
启动Oracle SQL developer 在tools->preference...
打开preference窗口后datebase->Third party JDBC driver. 找到你的异构数据库需要的driver的包,添加进去
这时new database的时候,会出现你的数据库类型的名字,比如我加的mysql就出来mysql,
默认的只有oracle和access(这个就是最原始的odbc驱动).

2.
Oracle相关操作:

  (1)、用户
  查看当前用户的缺省表空间
  SQL>select username,default_tablespace from user_users;
  查看当前用户的角色
  SQL>select * from user_role_privs;
  查看当前用户的系统权限和表级权限
  SQL>select * from user_sys_privs;
  SQL>select * from user_tab_privs;
  显示当前会话所具有的权限
  SQL>select * from session_privs;
  显示指定用户所具有的系统权限
  SQL>select * from dba_sys_privs where grantee='GAME';

  (2)、表

  查看用户下所有的表
  SQL>select * from user_tables;
  查看名称包含log字符的表
  SQL>select object_name,object_id from user_objects
  where instr(object_name,'LOG')>0;
  查看某表的创建时间
  SQL>select object_name,created from user_objects where object_name=upper('&table_name');
  查看某表的大小
  SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
  where segment_name=upper('&table_name');
  查看放在ORACLE的内存区里的表
  SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;

  (3)、索引
  查看索引个数和类别
  SQL>select index_name,index_type,table_name from user_indexes order by table_name;
  查看索引被索引的字段
  SQL>select * from user_ind_columns where index_name=upper('&index_name');
  查看索引的大小
  SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
  where segment_name=upper('&index_name');


(4)新建SEQUENCE 和触发器

CREATE SEQUENCE SEQ_DT_CLEAR_DATA_RESULT_ID INCREMENT BY 1 START WITH 1 MINVALUE 1 NOMAXVALUE NOCYCLE;
CREATE TRIGGER TRG_DT_CLEAR_DATA_RESULT_ID BEFORE INSERT ON DT_CLEAR_DATA_RESULT FOR EACH ROW BEGIN SELECTSEQ_DT_CLEAR_DATA_RESULT_ID.NEXTVAL INTO :NEW.ID FROM DUAL;
END;


3、MongoDB相关操作:
//select Title,ItemID from user
db.user.find({},{"Title":1,"ItemID":1})

//select Title,ItemID,Medianame,Url.PubDate,Categorys,Regions from user的第一个结果
 db.user.findOne({},{"Title":1,"ItemID":1,"Medianame":1,"Url":1,"PubDate":1,"Categorys":1,"Regions":1})

//查询select Tags from user where Tags <>'null'
db.user.find({'Tags':{$ne:'null'}},{"Tags":1})

http://blog.csdn.net/zhongkeli/article/details/17739659

//检查端口是否启动
netstat -lanp | grep 27017

//删除某集合A下的全部文档
db.A.remove({})

附:

----常用数据字典

USER_   
  
记录用户对象的信息,如user_tables包含用户创建的所有表; user_views,user_constraints;
ALL_   
记录用户对象的信息及被授权访问的对象信息;
DBA_
  
记录数据库实例的所有对象的信息,如DBA_USERS包含数据库实例中所有用户的信息,DBA的信息包含userall的信息;
V$ 
当前实例的动态视图,包含系统管理和优化使用的视图;
GV_ 
分布环境下所有实例的动态视图,包含系统管理和优化使用的视图, 这里的GV表示 Global v$的意思;
 
如当前分布环境下启动多个实例:
set line 160 (
每行显示160个字符)
select inst_id,sid,lmode from gv$lock where inst_id = 1 or inst_id=2;

oracle
常用数据字典,oracle10增加了不少数据字典10g r1 1713个,r21870个:
基本的数据字典:
DBA_TABLES 所有用户的所有表的信息;
DBA_TAB_COLUMNS 
所有用户的表的列(字段)信息;
DBA_VIEWS 
所有用户的所有视图信息;
DBA_SYNONYMS 
所有用户同义词信息;
DBA_SEQUENCES 
所有用户序列信息;
DBA_CONSTRAINTS 
所有用户的表约束信息;
DBA_INDEXES 
所有用户索引的简要信息;
DBA_IND_COLUMNS 
所有用户索引的列信息;
DBA_TRIGGERS 
所有用户触发器信息 
DBA_SOURCE
所有用户存储过程源代码信息;
DBA_PROCEDUS 
所有用户存储过程;
DBA_SEGMENTS 
所有用户段(表,索引,Cluster)使用空间信息;
DBA_EXTENTS 
所有用户段的扩展段信息;
DBA_OBJECTS 
所有用户对象的基本信息(包括素引,表,视图,序列等);
CAT 
当前用户可以访问的所有的基表 
TAB 
当前用户创建的所有基表,视图,同义词等;
DICT 
构成数据字典的所有表的信息;

与数据库组件相关的数据字典:
数据库:
  V$DATABASE 
同义词 V_$DATABASE,记录系统的运行情况;
表空间:  
DBA_TABLESPACES 
记录系统表空间的基本信息;
DBA_DATA_FILES 
记录系统数据文件及表空间的基本信息;
DBA_FREE_SPACE 
记录系统表空间的剩余空间的信息;
控制文件:
V$CONTROLFILE 
记录系统控制文件的路径信息;
V$PARAMETER 
记录系统各参数的基本信息;
v$CONTROLFILE_RECORD_SECTION 
记录系统控制运行的基本信息;
数据文件:
DBA_DATA_FILES 
记录系统数据文件及表空间的基本信息;
v$DATAFILE 
记录来自控制文件的数据文件信息;
v$FILESTAT 
记录数据文件读写的基本信息 

--
可以通过以下几个动态性能视图查看信息:
V$sysstat 
系统统计信息
V$sesstat 
用户会话统计信息  
V$pgastat 
显示内存使用统计信息
V$sql_workarea SQL
游标所用工作区的信息
V$ sql_workarea_active 
当前系统工作区的信息

--
V$process动态性能视图中可以查询到每个Oracle进程的PGA分配的内存和已使用的内存情况,
--
其中PGA_used_mem表示已使用的,pag_alloc_mem表示已分配的,pga_max_men表示PGA的最大值。
SQL> select pid,pga_used_mem,pga_alloc_mem,pga_max_mem from v$process;

--
查看后台进程:
SELECT * FROM v$bgprocess WHERE paddr <> '00';

--查看所有的表空间;
SQL> select tablespace_name from dba_data_files order by tablespace_name;

--
查看表空间的名字及大小:
SQL> select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size   
from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name   
group by t.tablespace_name;


0 0