记录关于Devops运维,虚拟化容器云计算,数据库,网络安全等各方面问题。
parfile解决exp时tables过多问题 在对oracle数据库使用exp命令导出数据时,如果tables=后面跟的表比较多,就是导致命令行放不下,从而不能导出。百度一把发现使用prafile命令可以解决该问题首先要创建一个文件e:\exp.par(文件名随便),内容为tables=(tab1,tab2)file=e:\qqhe.dmplog=e:\qqhe_exp.log 然后在命令行中输入:exp user/passwd@dbparfile=e:\exp.par 如此这般就可以实现数据的导出
EXP导出和IMP导入(参数文件模式) 特点:1、数据库必须在open状态下,才可以使用EXP、IMP2、EXP只备份数据,与物理结构无关3、导出的是一个二进制文件 目的:1、数据库的迁移2、归档历史数据3、重新组织表4、转移数据给其它数据库5、物理备份的辅助 使用方式:1、交互模式(傻瓜模式)2、命令行模式(不太好,偶尔使用)3、参数文件模式(最好,最成熟的模式)4、图形向导模式(用的很少) 参数文件模式实验一:导出用户scott下的表T,接着删除表T,再导入恢复表Texp parfile=/home/oracle/test1.txte.txt 文件内容如下:userid=scott/tigerbuffer=100000log=/oradata/exp1.logfile=/oradata/test1.dmpfeedback=10000tables=t 彻底删除表T;drop table t purge; 导入表T;imp parfile=/home/oracle/test1.txt 实验二:导出用户scott下表T中deptno=30的数据,并删除表中数据并恢复exp parfile=/home/oracle/test2.txt内容如下:userid=scott/tigerbuffer=100000log=/oradata/exp2.logfile=/oradata/test2.dmpfeedback=10000tables=tquery='where deptno=30...
oracle的not like的一个例子 有个表t 的一个字段userid其中里面带"_",譬如:SQL>select * from t;USERID -----------xiaguan_aj xiaguan_sb zenxin xiaguan_hb xiaguan_yg请问我想查询userid不带"_"的userid.怎么我就查询不出来呢?SQL>select * from t where userid not like '%_%';查询结果为空.但是里面有一个zenxin的结果啊?请教了一下高手,原来是要转义一下:SQL> select * from t where userid not like '%=_%' escape '=';Like 查询条件注意SELECT * FROM transactions WHERE id NOT LIKE '1%' AND id NOT LIKE '2%'
Oracle中创建dblink的方法.使用简单方法:本地数据库创建dblink, 用sys账号执行:create database link to_linkconnect to two identified by two using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 115.144.114.144)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = TWO)))';注意 Service_name = TWO 的值在大写,否则识别不出来。当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。下面讲介绍如何在本地数据库中创建dblink. 创建dblink一般有两种方式,不过在创建dblink之前用户必须有创建dblink的权限。想知道有关dblink的权限,以sys用户登录到本地数据库: select * from user_sys_privs t where t.privilege like upper('%link%'); 1 SYS CREATE DATABASE LINK NO 2 SYS DROP PUBLIC DATABASE LINK NO 3 SYS CREATE PUBLIC DATABASE LINK NO 可以看出在数据库中dblink有三种权限CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了),CREATE PUBLIC...
假设导入用户为sysdb数据文件存放目录为dump_dir#: mkdir /home/oracle/bakSQL:# create directory dump_dir as '/home/oracle/bak';查询:select * from dba_directories where DIRECTORY_NAME='DUMP_DIR';查看目录是否存在 select owner,table_name,grantor,privilege from dba_tab_privs where grantee='SYSDB'; //注意SYSDB大写查看是否有read write权限如果没有读写权限,执行如下语句,赋给sysdb读写DATA_PUMP_DIR权限:GRANT WRITE ON DIRECTORY DUMP_DIR TO SYSDB WITH GRANT OPTION;GRANT READ ON DIRECTORY DUMP_DIR TO SYSDB WITH GRANT OPTION;expdp system/manager@db1 directory=dump_dir dumpfile=expdp.dmp logfile=expdp.log schemas=hruser content=metadata_only impdp system/manager@db2 directory=dump_dir logfile=local.impdp.log dumpfile=expdp.dmp
Centos7 配置firewall 动态防火墙规则访问 oracle 监听服务与em 服务本人机器装好centos7与oracle后,查看oracle各个配置都是正常的,但是一直没法使用plsql工具远程到oracle数据库,最后 停用firewall防火墙,还是不行。没办法只好开启防火墙了。#: systemctl enable firewalld.service /允许服务开机启动#: systemctl start firewalld.service 打开防火墙#: firewall-cmd --permanent --add-port=1521/tcp 打开oracle em web端口#: firewall-cmd --permanent --add-port=1158/tcp 打开oracle 监听端口 #: firewall-cmd --reload 载入端口信息 #: firewall-cmd --list-ports 查询已经添加端口
Ubuntu上启用X11VNC 并使用web访问VNC计算中心节点,没有远程控制不能活,就得装个VNC。 启动Ubuntu的软件中心,选择“X11VNC服务器”,进行安装。 当然也可以用sudo apt-get install x11vnc 命令安装。 接下来创建登陆密码sudo x11vnc -storepasswd 输入和确认之后,密码被保存到了用户的密码目录下: 再设置X11VNC的密码文件:sudo x11vnc -storepasswd in /etc/x11vnc.pass 将密码文件复制过去:sudo cp /root/.vnc/passwd /etc/x11vnc.pass打开/etc/init/x11vnc.conf文件,粘贴以下内容。如果没有这个文件,就用文本工具创建一个。端口:5900,自己可以定义。要打开web 访问VNC,并加参数: -shared -httpstart on login-session-start
script
x11vnc -display :0 -auth /var/run/lightdm/root/:0 -forever
-bg -o /var/log/x11vnc.log -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared -http
end script
保存后重启Ubuntu。 在别的操作系统里启动VNC Viewer,这里用的是Windows 7下安装的Real VNC。输入对应的IP地址或主机名,点击Connect连接。 如图,可见Ubuntu登陆界面。
dmesg 的时间戳处理dmesg_with_human_timestamps () {
$(type -P dmesg) "$@" | perl -w -e 'use strict;
my ($uptime) = do { local @ARGV="/proc/uptime";<>}; ($uptime) = ($uptime =~ /^(\d+)\./);
foreach my $line (<>) {
printf( ($line=~/^\[\s*(\d+)\.\d+\](.+)/) ? ( "[%s]%s\n", scalar localtime(time - $uptime + $1), $2 ) : $line )
}'
}
alias dmesg=dmesg_with_human_timestamps
http://stackoverflow.com/questions/13890789/convert-dmesg-timestamp-to-custom-date-format
都知道alter table move 或shrink space可以收缩段,用来消除部分行迁移,消除空间碎片,使数据更紧密,但move 跟shrink space还是有区别的。 Move会移动高水位,但不会释放申请的空间,是在高水位以下(below HWM)的操作。 而shrink space 同样会移动高水位,但也会释放申请的空间,是在高水位上下(below and above HWM)都有的操作。 也许很难理解吧,看测试就知道了。 SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod PL/SQL Release 10.2.0.1.0 - Production CORE 10.2.0.1.0 Production TNS for 32-bit Windows: Version 10.2.0.1.0 - Production NLSRTL Version 10.2.0.1.0 - Production SQL> create table test (id number) storage (initial 10m next 1m) tablespace users; Table created. SQL> analyze table test compute statistics; Table analyzed. SQL> col SEGMENT_NAME for a10 SQL> select SEGMENT_NAME,EXTENTS,BLOCKS,INITIAL_EXTENT/1024/1024 init ...
Oracle 10g Shrink Table 详解[表空间收缩] 从10g开始,oracle开始提供Shrink的命令,假如我们的表空间中支持自动段空间管理 (ASSM),就可以使用这个特性缩小段,即降低HWM。这里需要强调一点,10g的这个新特性,仅对ASSM表空间有效,否则会报 ORA-10635: Invalid segment or tablespace type。 有关ASSM的详细信息,请参考我的Blog:Oracle 自动段空间管理http://blog.csdn.net/tianlesoftware/archive/2009/12/07/4958989.aspx 如果经常在表上执行DML操作,会造成数据库块中数据分布稀疏,浪费大量空间。同时也会影响全表扫描的性能,因为全表扫描需要访问更多的数据块。从oracle10g开始,表可以通过shrink来重组数据使数据分布更紧密,同时降低HWM释放空闲数据块。 segment shrink分为两个阶段: 1、数据重组(compact):通过一系列insert、delete操作,将数据尽量排列在段的前面。在这个过程中需要在表上加RX锁,即只在需要移动的行上加锁。由于涉及到rowid的改变,需要enable row movement.同时要disable基于rowid的trigger.这一过程对业务影响比较小。 2、HWM调整:第二阶段是调整HWM位置,释放空闲数据块。此过程需要在表上加X锁...
最新评论