当前位置:首页 > 芯闻号 > 充电吧
[导读]项目需求:把服务器A上的一个数据库整库备份到服务器B上一、备份数据库1. 远程登录到服务器A2. 使用如下命令导出数据库:exp  用户名/密码@ip /home/database.dmp二、传输文件

项目需求:把服务器A上的一个数据库整库备份到服务器B上

一、备份数据库

1. 远程登录到服务器A

2. 使用如下命令导出数据库:

exp  用户名/密码@ip /home/database.dmp

二、传输文件

1. 远程登录到服务器B

2. 使用如下命令将备份文件从服务器A传送到服务器B上

scp remoteUser@remoteIp:remoteFile localPath

三、创建用户和表空间

1. 切换到操作Oracle数据库

su - oracle

切换成功会提示相关数据库的实例。 

2. 切换到sqlplus操作

sqlplus "/as sysdba"

3. 创建临时表空间

create temporary tablespace user_temp 

tempfile '/home/oracle/app/oracle/oradata/orcl/user_temp.dbf'

size 50m 

autoextend on 

next 50m maxsize 20480m 

extent management local; 

 

4. 创建数据表空间 

create tablespace user_data 

logging 

datafile '/home/oracle/app/oracle/oradata/orcl/user_data.dbf'

size 50m 

autoextend on 

next 50m maxsize 20480m 

extent management local; 

 

5. 创建用户并指定表空间 

create user username identified by password  

default tablespace user_data 

temporary tablespace user_temp; 

 

6. 给用户授予权限 

grant connect,resource,dba to username;

修改表空间

 

7. 如果想修改用户默认表空间使用如下命令:

ALTER USER user名

DEFAULT TABLESPACE tablespace名;

8. 退出sqlplus

   exit

四、导入数据库:

 imp 用户名/密码@ip file=/home/database.dmpbuffer=102400000 feedback=10000  full=y

 

到这里就完成了数据库的恢复。

但是在导入的时候可能会出现如下问题:

一、导入dmp文件,报 IMP-00013: only a DBA can import a file exported by another DBA 的问题,

这篇博客http://blog.itpub.net/28758644/viewspace-1063614/给了两种解决方法:

1. 给导入用户赋予dba 权限

SQL>grant sysdba to user;

SQL>grant imp_full_database to user;

 

2.使用普通用户导出dmp 文件,(我遇到的情况是测试环境的用户都有DBA权限,没有权限revoke dba权限,导致dmp文件导出都具有DBA权限)

变通的方法是:在本地导入具有带DBA权限的dmp 文件,然后再revoke DBA权限,最后导出的dmp 文件就不具有DBA权限,普通用户也可以导入。

 

 

二、导入了大量的数据库表后发现导入错了,怎么才能快速删除大量数据库表。

解决办法可参照http://www.cnblogs.com/chshnan/archive/2012/02/07/2341694.html这篇博客给出的两种方法

1、如果有删除用户的权限,则可以:

drop user user_name cascade;

加了cascade就可以把用户连带的数据全部删掉。

删除后再创建该用户。

--创建管理员用户

create user 用户名 identified by 密码 defaulttablespace space_data(表空间名称) temporary tablespace space_temp(临时表空间名称);

--授权

grant connect,dba to 用户名;

--修改限额

ALTER USER "用户名"QUOTA UNLIMITED ON SPACE_DATA(表空间名称);

--查看所有用户对象

select uo.object_name,uo.object_type fromuser_objects uo where uo.object_type<>'LOB' order by uo.object_type desc

2、如果没有删除用户的权限,则可以执行:

select 'drop table '||table_name||';' fromcat where table_type='TABLE'

将会输出一批删除表的sql语句,这些SQL语句执行一下就可以了。(需要有drop table的权限)


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

双系统将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对双系统的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 双系统 Windows Linux

安装Linux操作系统并不复杂,下面是一个大致的步骤指南,以帮助您完成安装。1. 下载Linux发行版:首先,您需要从Linux发行版官方网站下载最新的ISO镜像文件。

关键字: Linux 操作系统 ISO镜像

计算机是由一堆硬件组成的,为了有限的控制这些硬件资源,于是就有了操作系统的产生,操作系统是软件子系统的一部分,是硬件基础上的第一层软件。

关键字: Linux 操作系统 计算机

Linux操作系统是一套免费使用和自由传播的类Unix操作系统,通常被称为GNU/Linux。它是由林纳斯·托瓦兹在1991年首次发布的,并基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Lin...

关键字: Linux 操作系统

所谓进程间通信就是在不同进程之间传播或交换信息,它是一组编程接口,让程序员能够协调不同的进程,使之能在一个操作系统里同时运行,并相互传递、交换信息;还可以让一个程序能够在同一时间里处理许多用户的需求。

关键字: Linux 进程通信 编程接口

串口通信作为一种最传统的通信方式,在工业自动化、通讯、控制等领域得到广泛使用。

关键字: Linux 串口通信 通讯

2023年11月16日: MikroElektronika(MIKROE) ,作为一家通过提供基于成熟标准的创新式硬软件产品来大幅缩短开发时间的嵌入式解决方案公司,今天宣布推出一款基于单线设备的软硬件开源解决方案Cli...

关键字: 嵌入式 Linux 操作系统

Linux是一种免费使用和自由传播的类Unix操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布。它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CP...

关键字: Linux 操作系统

本文中,小编将对嵌入式予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 嵌入式 Linux

在这篇文章中,小编将为大家带来嵌入式 Linux的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 嵌入式 Linux
关闭
关闭