今天在研究了一下关于ORACLE的导入导出的功能,周五快要下班的时候给同事新建一个表空间,将同一个数据库中的某个用户下的表导入新的表空间上,建好表空间和用户后,直接用 exp ,imp 来导入数据到新的表空间,查是发现后来导入的数据还在原来的表空间上,(周五那天的我是用工具编辑DMP文件,修改里的表空间名后导入的),后来想起来了eygle的书上写了关于这个的问题,于是今天就来试验了一下。
 第一种:修改用户的一些权限。
 首先使用sytem帐户登陆
 --创建新表空间的用户
 SQL> create user pangzi identified by pangzi default tablespace pangzi temporary tablespace temp;
 用户已创建。
 --授给新用户一般的权限
 SQL> grant export full database to pangzi;
 授权成功。
 SQL> grant import full database to pangzi;
 授权成功。
 SQL> grant connect,resource to pangzi;
 授权成功。
 SQL> grant create procedure to pangzi;
 授权成功。
 SQL> grant create job to pangzi;
 授权成功。
SQL> grant create view to pangzi; 
授权成功。
 SQL> grant create synonym to pangzi;
 授权成功。
 --从这里开始将是增加的,为了使导入的数据,不放在原来的表空间上
 SQL> grant dba to pangzi;
 --收回用户的umlimited tablespace权限
 
 SQL> revoke unlimited tablespace from pangzi;
 --设置新创建的用户可使用syb表空间的大小0(原数据所在的表空间为syb)
 SQL> alter user pangzi quota 0 on syb;
 --设置新创建的用户可使用pangzi表空间的大小不限制
  
 SQL> alter user pangzi quota unlimited on pangzi;
 --收回DBA权限
 SQL> revoke dba from pangzi;
 执行导入数据
 C:\Users\dyspangzi>imp pangzi/pangzi@testdev file=syb.dmp full=y
  
 Import: Release 10.2.0.3.0 - Production on 星期六 4月 21 17:48:54 2012
  
 Copyright (c) 1982, 2005, Oracle.  All rights reserved.
  
  
 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
 With the Partitioning, OLAP and Data Mining options
  
 经由常规路径由 EXPORT:V10.02.01 创建的导出文件
  
 警告: 这些对象由 SYB 导出, 而不是当前用户
  
 已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
 . 正在将 SYB 的对象导入到 PANGZI
 . . 正在导入表                     "ALL_SALES"导入了         360 行
 . . 正在导入表                       "COUPONS"导入了           6 行
 . . 正在导入表                     "CUSTOMERS"导入了           5 行
 . .中间部分内容省略,都是导入的信息
  
  
 . . 正在导入表                      "REG_EXPS"导入了           1 行
 . . 正在导入表                 "SALARY_GRADES"导入了           4 行
 即将启用约束条件...
 成功终止导入, 没有出现警告。
 导入成功,我们看导的表已经在新的表空间中了
 SQL> show user
USER 为 "PANGZI"
SQL> select  table_name,tablespace_name from user_tables;
 TABLE_NAME                      TABLESPACE_NAME
------------------------------  ------------------------------
DYSPANGZI                       PANGZI
CUSTOMERS                       PANGZI
PRODUCT_TYPES                   PANGZI
PRODUCTS                        PANGZI
PURCHASES                       PANGZI
EMPLOYEES                       PANGZI
SALARY_GRADES                   PANGZI
PURCHASES_WITH_TIMESTAMP        PANGZI
PURCHASES_TIMESTAMP_WITH_TZ     PANGZI
PURCHASES_WITH_LOCAL_TZ         PANGZI
COUPONS                        PANGZI
 TABLE_NAME                      TABLESPACE_NAME
------------------------------  ------------------------------
PROMOTIONS                      PANGZI
ORDER_STATUS                    PANGZI
PRODUCT_CHANGES                 PANGZI
MORE_PRODUCTS                   PANGZI
MORE_EMPLOYEES                  PANGZI
DIVISIONS                       PANGZI
JOBS                            PANGZI
EMPLOYEES2                      PANGZI
ALL_SALES                       PANGZI
PRODUCT_PRICE_AUDIT             PANGZI
REG_EXPS                       PANGZI
 已选择22行。                      
第二种:使用EXPDP和IMPDP来导入和导出 
        使用expdp来导出,首先要为一个参数来指定一个路径——directory,expdp是在服务器端工作,导出的文件需要放在本地目录,这个参数就是保存导出文件的位置。这个可以自己创建,也可以是默认的,我自己创建了一个,名字是expdir
 SQL> CREATE OR REPLACE DIRECTORY expdir AS '/var/backup';
  
 目录已创建。
  
 SQL> select * from dba_directories;
  
 OWNER        DIRECTORY_NAME      DIRECTORY_PATH
 -------------------   -------------------------------  -----------------------------------------
 SYS             ADMIN_DIR            /ade/aime_10.2_lnx_push/oracle/md/admin
  
 SYS             DATA_PUMP_DIR       /usr/app/oracle/product/10.2.0/db_1/rdbms/log/
  
 SYS             WORK_DIR             /ade/aime_10.2_lnx_push/oracle/work
  
 SYS             EXPDIR                /var/backup
 --给用户授予读写权限
  
  
 SQL> grant read,write on directory expdir to syb;
 开始导出数据
 [oracle@dyspangzi ~]$ expdp dumpfile=syb.dmp directory=expdir;
 Export: Release 10.2.0.1.0 - Production on Saturday, 21 April, 2012  18:06:46
 Copyright (c) 2003, 2005, Oracle.  All rights reserved.
 Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -  Production
With the Partitioning, OLAP and Data Mining options
Starting  "SYB"."SYS_EXPORT_SCHEMA_01":  dumpfile=syb.dmp directory=expdir 
Estimate in  progress using BLOCKS method...
Processing object type  SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 1.375  MB
Processing object type  SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type  SCHEMA_EXPORT/TABLE/TABLE
Processing object type  SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type  SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type  SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type  SCHEMA_EXPORT/TABLE/COMMENT
Processing object type  SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
Processing object type  SCHEMA_EXPORT/FUNCTION/FUNCTION
Processing object type  SCHEMA_EXPORT/PROCEDURE/PROCEDURE
Processing object type  SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
Processing  object type SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
Processing object type  SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
Processing object type  SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
Processing object type  SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type  SCHEMA_EXPORT/TABLE/TRIGGER
. . exported  "SYB"."DYSPANGZI"                           48.50 KB     659 rows
. .  exported "SYB"."ALL_SALES"                           13.68 KB     360  rows
       中间导出信息省略
 .  . exported "SYB"."REG_EXPS"                            5.437 KB       1  rows
. . exported "SYB"."SALARY_GRADES"                       5.710 KB        4 rows
. . exported "SYB"."PRODUCT_PRICE_AUDIT"                     0  KB       0 rows
Master table "SYB"."SYS_EXPORT_SCHEMA_01" successfully  loaded/unloaded
******************************************************************************
Dump  file set for SYB.SYS_EXPORT_SCHEMA_01 is:
  /var/backup/syb.dmp
Job  "SYB"."SYS_EXPORT_SCHEMA_01" successfully completed at 18:07:11
  
 导出成功后查看一下刚才创建目录里边的内容
 [root@dyspangzi var]# cd backup
[root@dyspangzi backup]# ls -l
总计  720
-rw-r--r-- 1 oracle oinstall   3472 04-21 18:07 export.log
-rw-r-----  1 oracle oinstall 729088 04-21 18:07 syb.dmp
 多了两个文件,一个是日志文件一个是导出的数据文件,在导入的时候需要这两个文件。下面开始导入。
 ===================================================================================
 出现了第一个错误
 [oracle@dyspangzi ~]$ impdp pangzi/pangzi dumpfile=syb.dmp directory=expdir  remap_tablespace=syb:pangzi
 Import: Release 10.2.0.1.0 - Production on Saturday, 21 April, 2012  18:45:35
 Copyright (c) 2003, 2005, Oracle.  All rights reserved.
 Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -  Production
With the Partitioning, OLAP and Data Mining options
ORA-39002:  invalid operation
ORA-39070: Unable to open the log file.
ORA-39087:  directory name EXPDIR is invalid
 出现了错误,后来发现这个是因为新用户pangzi没有对目录的读写权限造成的,于是加上权限
 SQL> grant read,write on directory expdir to pangzi;
 授权成功。
 ==================================================================================
 出现了第二个错误
 [oracle@dyspangzi ~]$ impdp pangzi/pangzi dumpfile=syb.dmp directory=expdir  remap_tablespace=syb:pangzi
 Import: Release 10.2.0.1.0 - Production on Saturday, 21 April, 2012  18:47:38
 Copyright (c) 2003, 2005, Oracle.  All rights reserved.
 Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -  Production
With the Partitioning, OLAP and Data Mining options
ORA-31655:  no data or metadata objects selected for job
ORA-39154: Objects from foreign  schemas have been removed from import
Master table  "PANGZI"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting  "PANGZI"."SYS_IMPORT_FULL_01":  pangzi/******** dumpfile=syb.dmp  directory=expdir remap_tablespace=syb:pangzi 
Processing object type  SCHEMA_EXPORT/TABLE/TABLE_DATA
Job "PANGZI"."SYS_IMPORT_FULL_01" successfully  completed at 18:47:41
 这个是由于原来的用户和现在的不一样了,加上这个参数就好了  remap_schema=syb:pangzi
 =====================================================================================================
 下面是没有任何错误的导入了
 [oracle@dyspangzi ~]$ impdp pangzi/pangzi dumpfile=syb.dmp directory=expdir  remap_schema=syb:pangzi remap_tablespace=syb:pangzi
 Import: Release 10.2.0.1.0 - Production on Saturday, 21 April, 2012  18:49:24
 Copyright (c) 2003, 2005, Oracle.  All rights reserved.
 Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -  Production
With the Partitioning, OLAP and Data Mining options
Master  table "PANGZI"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting  "PANGZI"."SYS_IMPORT_FULL_01":  pangzi/******** dumpfile=syb.dmp  directory=expdir remap_schema=syb:pangzi remap_tablespace=syb:pangzi  
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing  object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type  SCHEMA_EXPORT/TABLE/TABLE_DATA
. . imported  "PANGZI"."DYSPANGZI"                        48.50 KB     659 rows
. .  imported "PANGZI"."ALL_SALES"                        13.68 KB     360  rows
     中间部分导入信息省略
 . . imported "PANGZI"."PURCHASES_WITH_TIMESTAMP"         5.609 KB       1  rows
. . imported "PANGZI"."REG_EXPS"                         5.437 KB        1 rows
. . imported "PANGZI"."SALARY_GRADES"                    5.710  KB       4 rows
. . imported "PANGZI"."PRODUCT_PRICE_AUDIT"                   0 KB       0 rows
Processing object type  SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type  SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type  SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type  SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
Processing object type  SCHEMA_EXPORT/FUNCTION/FUNCTION
Processing object type  SCHEMA_EXPORT/PROCEDURE/PROCEDURE
Processing object type  SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
Processing  object type SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
Processing object type  SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
Processing object type  SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
Processing object type  SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type  SCHEMA_EXPORT/TABLE/TRIGGER
Job "PANGZI"."SYS_IMPORT_FULL_01" successfully  completed at 18:49:37
 成功导入!!!!
 查看默认的表空间
 SQL> select table_name,tablespace_name from user_tables; 
 TABLE_NAME                      TABLESPACE_NAME
------------------------------  ------------------------------
DYSPANGZI                       PANGZI
CUSTOMERS                       PANGZI
PRODUCT_TYPES                   PANGZI
PRODUCTS                        PANGZI
PURCHASES                       PANGZI
EMPLOYEES                       PANGZI
SALARY_GRADES                   PANGZI
PURCHASES_WITH_TIMESTAMP        PANGZI
PURCHASES_TIMESTAMP_WITH_TZ     PANGZI
PURCHASES_WITH_LOCAL_TZ         PANGZI
COUPONS                        PANGZI
 TABLE_NAME                      TABLESPACE_NAME
------------------------------  ------------------------------
PROMOTIONS                      PANGZI
ORDER_STATUS                    PANGZI
PRODUCT_CHANGES                 PANGZI
MORE_PRODUCTS                   PANGZI
MORE_EMPLOYEES                  PANGZI
DIVISIONS                       PANGZI
JOBS                            PANGZI
EMPLOYEES2                      PANGZI
ALL_SALES                       PANGZI
PRODUCT_PRICE_AUDIT             PANGZI
REG_EXPS                       PANGZI
 已选择22行。
 此表空间中没有索引,所以第一种方法也没有报错,如果出现有索引的第一种方法还得增加几步,等我明天找到周五那个数据再来再着做试验。
 -----------------------------------------------------------
 今天特意去公司找来了那天导的数据库,回来做实验。采用第一种方法不可行,虽然说可以使用IMP   加indexs参数来导出一些索引,但是导入的时候总有莫名其妙的错误,估计还是我没弄好,所以为了省事还是直接用第二种吧,方便,无错。
			
			
		 
	
		
						
			1.在Oracle中可以用下面两种:
01: 
     create table newtable   as select * from oldtable;//用于复制前未创建新表newtable不存在的情况 
02: 
      insert into newtable   select * from oldtable;//已经创建了新表newtable 的情况
注意:第一种方式只是复制了表结构,但是主键什么的并没有复制进去,所以用的时候要小心在意。
2.如果想简单快速的复制表结构,而不需要oldtable里面的数据,可以用下面的语句:
    create table newtable   as  select * from oldtable where 1=2;(把数据过滤掉)
3.如过newtable 和oldtable的表结构不同,可以使用下面的方式:
 create table newtable  as select  s.c1,s.c2  from oldtable s;
 
4.如果想重新命名newtable的列名:
在oracle中:
 create table  newtable(id,name1) as select  s.c1,s.c2  from oldtable s;
或者
 create table  newtable as select  s.c1 ,s.c2  from oldtable s;
在mysql中恐怕只能用第二种方式了。
5.如果是只需要把一部分的oldtable中的数据添加到newtable中。可以这样:
 create table newtable   as (select * from oldtable where ...);//加where过滤条件
6.最常见的情况是id列新表中要用,并且和旧表中的不同,使用下面的语句就可以了(我们可以重新建一个sequence)
create table yang(id,name) as select hibernate_sequence.nextval,t.ename from emp t;
7.要注意,导出表的时候不能用select...into语句。
			
			
		 
	
		
						
			1、查看操作系统版本和内核版本#uname –a
#more /etc/redhat-release
2、创建相关目录/usr/src/redhat/SOURCES //存放源代码,补丁,图标等文件。
/usr/src/redhat/SPECS //存放用于管理rpm制作进程的spec文件。
/usr/src/redhat/BUILD //解压后的文件存放在这里。
/usr/src/redhat/RPMS //存放由rpmbuild制作好的二进制包。
/usr/src/redhat/SRPMS //存放由rpmbuild制作好的源码包。
#mkdir -p /usr/src/redhat/
#cd /usr/src/redhat/
#mkdir SOURCES SPECS BUILD RPMS SRPMS
3、下载Nginx源码包下载源码包到SOURCES目录,不需要解压
#wget http://nginx.org/download/nginx-1.3.9.tar.gz
4、手工创建SPEC文件由于spec文件是由spec语言编写的,请注意spec语言的语法。
#cd /usr/src/redhat/SPECS/
#cat < nginx.spec > EOC
| Summary:  High Performance Web Server Name:  nginx Version:  1.3.9 Release:  el5 License:  GPL Group:  Applications/Server Source:  http://nginx.org/download/nginx-1.3.9.tar.gz URL:  http://nginx.org/ Distribution:  Linux Packager:  JingSheng <jingsheng1@staff.sina.com.cn> 
 %description nginx  [engine x] is a HTTP and reverse proxy server %prep useradd  nginx -s /sbin/nologin rm -rf  $RPM_BUILD_DIR/nginx-1.3.9 zcat  $RPM_SOURCE_DIR/nginx-1.3.9.tar.gz | tar -xvf - %build cd  $RPM_BUILD_DIR/nginx-1.3.9 ./configure  --user=nginx --group=nginx --prefix=/usr/local/nginx/ --with-http_stub_status_module  --with-http_ssl_module make %install cd  $RPM_BUILD_DIR/nginx-1.3.9 make  install %preun if [ -z  "`ps aux | grep nginx | grep -v grep`" ];then killall  nginx >/dev/null exit 0 fi %files /usr/local/nginx | 
#:以#开头是注释,rpm会忽略它。
Summary:简单描述软件。
Name :定义rpm的名称。
Version: 定义软件版本
Release: 发行版本
License: 定义许可证
Group: 软件分类
Source: 源码下载地址
URL: 源码相关网站
Distribution: 发行版系列
Packager: 打包人的信息
scription:软件详细描述,可多行
%prep :软件编译之前的处理,如解压。
%build :开始编译软件,如make
%install :开始安装软件,如make install
%files :指定哪些文件需要被打包,如/usr/local/nginx
%preun :定义卸载之前的动作,如杀掉进程。
5、开始RPM制作在制作RPM包之前,需要安装必要的编译工具
#yum install -y gcc rpm-build pcre-devel
开始编译生成rpm包
# rpmbuild-bb nginx.spec
注意:如果安装生成报错,请将安装过的东东全部去除,再重新打包
# rpm –qpl *.rpm 查看rpm包含哪些
			
			
		 
	
		
						
			最近一直在折腾linux,centos、redhat装了又装,到最后还是装了redhat。
以前多少接触过linux,但是都不深入(这次虽然也是皮毛,但是稍微知道了一些东东,现在就卖了),这次从零开始自己折腾linux,确实是被linux折腾了。linux跟windows确实有很多不同,有机会再继续介绍,这次先说一下使用Xmanager远程连接Redhat的经历。
Xmanager不多说了,是一款非常不错的管理工具。但是,如果要让Xmanager远程连接redhat,其实远程连接,主要还是想要做成跟windows的远程桌面一样的东西,图形界面方便啦!
只是这次配置Xmanager相当痛苦,按照网上各种资料对redhat进行配置,然后不停的reboot,但是,xmanager总是连不上。
这其中,修改的文件包括:
/usr/share/gdm/defaults.conf这个gdm的配置文件,主要是以下内容:
Enable=true
DisplaysPerHost=10
Port=177
还有/etc/inittab文件,主要是首先默认级别为5,这个文件貌似在安装的时候就已经默认为5了。id:5:initdefault:
然后最后一行的“x:5:respawn:/etc/X11/prefdm -nodaemon”调整为:
x:5:respawn:/usr/sbin/gdm
当然,还得改!
依然是/usr/share/gdm/defaults.conf,在[security]中调整以下的值:
AllowRoot=true
AllowRemoteRoot=true
AllowRemoteAutoLogin=true
如果开着防火墙,那还是要放开177端口,我暂时把防火墙关了。
reboot!reboot总是很重要的!
如果上述调整完成之后,依然无法连接,我就是这样的情况,连接不上啊!!!!
又随便找了几篇文章,也许跟hosts文件有关系哦!
打开/etc/hosts文件一看,空的!!!
在其中加上127.0.0.1 localhost,reboot,我总是喜欢reboot,这样比较干净!比较彻底!
在Xstart中配置好相应的参数,一定要在Commond中选择“GNOME”,这样再Run,Xbrowser将久违的redhat桌面打开了!