我是新手想学习 ORACLE 我对LIUNX 和SQL 基础还行 我现在想学习oracle dba突击 pdf 有没有大神比较详细的资料

我想学习Toad的使用,没学过oracle,不懂这相关,求一份基础教程之类的,能帮助学习。_百度知道
我想学习Toad的使用,没学过oracle,不懂这相关,求一份基础教程之类的,能帮助学习。
过来人如果有什么建议的,com,希望不吝赐教。本人邮箱dodosay365@163,
提问者采纳
那么可以下载一个Toad for Oracle,褂,操作Oracle数据库的工具不止Toad一种,但你要明白,如果不会数据库,还有比如想PLSQL developer和Oracle自带的SQL plus都是,那么Toad对你来说没用。如果想学Oracle,Toad只是一个操作Oracle数据库的工具,如果你稍微有点英语基础的话根本就不需要什么Toad帮助手册之类的书。,那你会其他的数据库吗,
提问者评价
在此谢过~
其他类似问题
toad的相关知识
其他3条回答
toad只是一个工具而已,可以操作oracle数据库,建议你先研究研究oracle吧
.........................
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁本人想学习数据库,请问oracle与sql数据库学习哪个好?_百度知道
本人想学习数据库,请问oracle与sql数据库学习哪个好?
提问者采纳
如果没有基础,先学sql server,相对容易入手;如果要存找工作角度,学oracle更好一些。及时技术原理基本相同,一通百通,学会了一个,另一个也很好掌握!
提问者评价
其他类似问题
按默认排序
其他3条回答
都好, 但 oracle
实用些,现在 基本上 要做大项目都是用oracle
看你的应用,前者一般用于大型数据库,比如小型机之类的多一些,后者适合中小型数据库管理,很多命令类似,建议先学后者。
肯定是oracle好点嘛
sql数据库的相关知识
等待您来回答
您可能关注的推广回答者:回答者:
下载知道APP
随时随地咨询
出门在外也不愁You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number  3、MySQL的Linux安装  MySQL在Linux平台下的常见的安装方式共3种, 下面将分别介绍。  (1)、RPM方式安装  Step1: 从官网上下载mysql服务器端和客户端rpm安装文件  Step2: 执行rpm安装    rpm &ivh MySQL-server-community-5.1.45-1.rhel5.i386.rpm    rpm &ivh MySQL-client-community-5.1.45-1.rhel5.i386.rpm  这样就完成了mysql的rpm方式的安装。  (2)、二进制方式安装  Step1: 新建MySQL用户及用户组    groupadd mysql    useradd &g mysql mysql  Step2: 解压下载的mysql压缩包    tar zxvf mysql-5.1.45.tar.gz  Step3: 移动mysql-5.1.45到/usr/local/mysql  Step4: 初始化安装mysql数据库    cd /usr/local/mysql    scripts/mysql_install_db --user=mysql  这样就完成了mysql的二进制方式安装。  (3)、源码方式安装  源码方式安装为高级用户提了一个可以定制安装的途径,用户可以配置更多的选项,更加灵活的使用MySQL  Step1: 新建MySQL用户及用户组    groupadd mysql    useradd &g mysql mysql  Step2: 解压下载的mysql压缩包    tar zxvf mysql-5.1.45.tar.gz    cd mysql-5.1.45  Step3: 用configure工具来编译源代码,这里我们可以使用很多的参数,具体可以用configure --help来查看,这里我们将MySQL安装到/usr/local/MySQL下    ./configuer --prefix=/usr/local/MySQL    make    make install  Step4: 选择一个配置文件,并复制到/etc/下重命名为my.cnf    cp support-files/f /f  Step5: 初始化安装mysql数据库    cd /usr/local/mysql    bin/mysql_install_db --user=mysql  Step6: 修改目录权限    chown -R root .    chown -R MySQL var    chgrp -R MySQL .  Step7: 开启MySQL服务    ./bin/mysqld_safe --user=mysql  这样就完成了mysql的源码方式安装。  4、MongoDB的Linux安装  MongoDB的Linux平台下安装步骤与Windows一样,只不过是不一样而已。  Step1: 在官网上下载tgz安装包,注意是64位还是32位版本的,请选择正确的版本。  Step2: 在&/Apps/&盘解压下载到的安装包,并重命名为&mongodb&  Step3: 建立&/data/db&目录用于存放数据文件  Step4: 执行& /Apps/mongodb/bin/mongod&文件来启动MongoDB服务器  Step5: 打开游览器输入URL &http://192.168.1.103:28017/&,如果出现让你输入用户名和口令的页面则说明已正常启动。  综上所述,对于MongoDB这一NoSQL领域的新战士来说,它的安装方式比起MySQL更加简单和方便。  二、数据存储结构  1、MySQL的数据存储结构  MySQL的每个数据库都对应存放在一个与数据库同名的文件夹中,MySQL数据库文件包括MySQL所建数据库文件和MySQL所用存储引擎创建的数据库文件。  MySQL如果使用MyISAM存储引擎,数据库文件类型就包括.frm、.MYD、.MYI  MySQL如果使用InnoDB存储引擎,数据库文件类型就包括.frm、ibdata1、.ibd  (1)、数据库文件:  .frm文件:存储数据表的框架结构,MySQL数据库文件名与表名相同,每个表对应一个同名frm文件,与和存储引擎无关,即不管MySQL运行在何种操作系统上,使用何种存储引擎,都有这个文件。除了必有的.frm文件,根据MySQL所使用的存储引擎的不同(MySQL常用的两个存储引擎是MyISAM和InnoDB),存储引擎会创建各自不同的数据库文件。  (2)、MyISAM数据库表文件:    .MYD文件:即MY Data,表数据文件    .MYI文件:即MY Index,索引文件    .log文件:日志文件  (3)、InnoDB采用表空间:  ibdata1、ibdata2:系统表空间MySQL数据库文件,存储InnoDB系统信息和用户数据库表数据和索引,被所有表共用;  .ibd文件:单表表空间文件,每个表使用一个表空间文件(file per table),用于存放用户数据库表数据和索引;  日志文件:ib_logfile1、ib_logfile2。  2、MongoDB的数据存储结构  MongoDB对国内用户来说比较新, 它就像是一个黑盒子,但是如果对于它内部的数据存储了解多一些的话,那么将会很快的理解和驾驭MongoDB,让它发挥它更大的作用。  MongoDB的默认数据目录是/data/db,它负责存储所有的MongoDB的数据文件。在MongoDB内部,每个数据库都包含一个.ns文件和一些数据文件,而且这些数据文件会随着数据量的增加而变得越来越多。所以如果系统中有一个叫做foo的数据库,那么构成foo这个数据库的文件就会由foo.ns,foo.0,foo.1,foo.2 等等组成,具体如下:[root@localhost db]# ll /data/db/总计 196844-rw------- 1 root root -15 16:33 admin.0-rw------- 1 root root -15 16:33 admin.1-rw------- 1 root root -15 16:33 admin.ns-rw------- 1 root root -21 17:30 foo.0-rw------- 1 root root -21 17:30 foo.1-rw------- 1 root root -21 17:30 foo.2-rw------- 1 root root -21 17:30 foo.ns-rwxr-xr-x 1 root root&&&&&&&&6 04-21 17:16 mongod.lock-rw------- 1 root root -15 16:30 test.0-rw------- 1 root root -15 16:30 test.1-rw------- 1 root root -15 16:30 test.nsdrwxr-xr-x 2 root root&&&&
17:30 _tmp[root@localhost db]#  MongoDB内部有预分配表空间的机制,每个预分配的文件都用0进行填充,由于有了这个机制, MongoDB始终保持额外的空间和空余的数据文件,从而有效避免了由于数据暴增而带来的磁盘压力过大的问题。  由于表中数据量的增加,数据文件每新分配一次,它的大小都会是上一个数据文件大小的2倍,每个数据文件最大2G。这样的机制有利于防止较小的数据库浪费过多的磁盘空间,同时又能保证较大的数据库有相应的预留空间使用。  数据库的每张表都对应一个命名空间,每个索引也有对应的命名空间。这些命名空间的元数据都集中在*.ns文件中。  在下图中,foo这个数据库包含3个文件用于存储表和索引数据,foo.2文件属于预分配的空文件。foo.0和foo.1这两个数据文件被分为了相应的盘区对应不同的名字空间。  上图显示了命名空间和盘区的关系。每个命名空间可以包含多个不同的盘区,这些盘区并不是连续的。与数据文件的增长相同,每一个命名空间对应的盘区大小的也是随着分配的次数不断增长的。这样做的目的是为了平衡命名空间浪费的空间与保持某一个命名空间中数据的连续性。上图中还有一个需要注意的命名空间:$freelist,这个命名空间用于记录不再使用的盘区(被删除的Collection或索引)。每当命名空间需要分配新的盘区的时候,都会先查看$freelist是否有大小合适的盘区可以使用。  三、命令行工具及SQL语法  MySQL是个广泛应用的关系型数据库产品,其语法规则遵守SQL99标准,MongoDB是新型的NoSQL产品,是文档型存储结构,其语法与传统的数据库产品略有不同,但殊途同归,都可以完成数据库开发和管理工作。下面的表格比较全面的对比了二者之间的区别,相信大家看了下表后应该对MySQL和MongoDB在整体上会有比较全面的理解,好,下面就让大家对这两个数据库进行比较学习。▲点击查看原图  四、授权和权限  数据库的安全性是每一个DBA重点关注的部分,在数据库建立之后,数据的安全就显得尤为重要。  对于一个数据库管理员来说,安全性就意味着他必须保证那些具有特殊数据访问权限的用户能够登录到数据库服务器,并且能够访问数据以及对数据库对象实施各种权限范围内的操作;同时,DBA还要防止所有的非授权用户的非法操作。  1、MySQL授权和权限  MySQL中有两种级别的权限:管理和用户。所有权限都可分别使用 GRANT 和 REVOKE 语句授予和收回。可以授予用户create、select、update、delete、insert、execute、index 等权限,也可授予alter、drop和shutdown等系统权限。根用户root在默认情况下具有所有权限。  2、MongoDB授权和权限  官方文档开启MongoDB 服务时不添加任何参数时,可以对数据库任意操作,而且可以远程访问数据库,所以推荐只是在开发是才这样不设置任何参数。如果启动的时候指定--auth参数,可以从阻止根层面上的访问和连接  (1)、只允许某ip访问    mongod --bind_ip 127.0.0.1  (2)、指定服务端口    mongod --bind_ip 127.0.0.1 --port27888  (3)、添加用户认证    mongod --bind_ip 127.0.0.1 --port27888 &auth  (4)、添加用户  在刚安装完毕的时候MongoDB都默认有一个admin数据库,而admin.system.users中将会保存比在其它数据库中设置的用户权限更大的用户信息。  当admin.system.users中一个用户都没有时,即使mongod启动时添加了--auth参数,如果没有在admin数据库中添加用户,此时不进行任何认证还是可以做任何操作,直到在admin.system.users中添加了一个用户。  下面分别创建两个用户, 在foo中创建用户名为user1密码为pwd1的用户,如下:[root@localhost bin]# ./mongo --port 27888MongoDB shell version: 1.8.1connecting to: test& use fooswitched to db foo& db.addUser(&user1&,&pwd1&){&&&&&&&&&user& : &user1&,&&&&&&&&&readOnly& : false,&&&&&&&&&pwd& : &eeaed&}&  在admin中创建用户名为root密码为pwd2的用户,如下:& use adminswitched to db admin& db.addUser(&root&, &pwd2&){&&&&&&&&&_id& : ObjectId(&4f8a87bce495a88dad4613ad&),&&&&&&&&&user& : &root&,&&&&&&&&&readOnly& : false,&&&&&&&&&pwd& : &a4f07df42&}& db.auth(&root&, &pwd2&)1&&  如果认证成功会显示1, 用以下命令可以查看特定的数据库的用户信息:& use adminswitched to db admin& db.system.users.find();{ &_id& : ObjectId(&4f8a87bce495a88dad4613ad&), &user& : &root&, &readOnly& : false, &pwd& : &a4f07df42& }& use fooswitched to db foo& db.system.users.find();{ &_id& : ObjectId(&4f92966d77aeb2b2e730c1bb&), &user& : &user1&, &readOnly& : false, &pwd& : &eeaed& }&&  下面我们试验一下用户的权限设置是否正确:[root@localhost bin]# ./mongo --port 27888MongoDB shell version: 1.8.1connecting to: 127.0.0.1:27888/test& use fooswitched to db foo&&&db.system.users.find();error: {&&&&&&&&&$err& : &unauthorized db:foo lock type:-1 client:127.0.0.1&,&&&&&&&&&code& : 10057}& use adminswitched to db admin&&&db.system.users.find();error: {&&&&&&&&&$err& : &unauthorized db:admin lock type:-1 client:127.0.0.1&,&&&&&&&&&code& : 10057}&  通知以上实验结果,说明登录时不指定用户名和口令时会报错,也就是说安全性的部署生效了。下面我再看一下另一个场景:[root@localhost bin]# ./mongo --port 27888 -uroot -ppwd2&&MongoDB shell version: 1.8.1connecting to: 127.0.0.1:27888/testSat Apr 21 19:23:15 uncaught exception: login failedexception: login failed  奇怪了,我们明明指定了用户名而且口令也没有错呀,这时我们看一下系统日志上是否有一些有价值的信息:auth: couldn't find user root, test.system.users  哦,原来是这样,说明连接mongodb时,如果不指定库名,那么会自动连接到test库,但刚才我们新建的用户,都不是在test库上建立的,所以我们需要显示指定需要连接的库名:[root@localhost bin]# ./mongo --port 27888 admin -uroot -ppwd2 MongoDB shell version: 1.8.1connecting to: 127.0.0.1:27888/admin&system.indexessystem.users& use fooswitched to db foo& show collectionssystem.indexessystem.userst1&  可以看到root这个用户有所有库的操作权限, 那么user1这个用户有什么权限呢?我们一试便知:[root@localhost bin]# ./mongo --port 27888 foo -uuser1 -ppwd1MongoDB shell version: 1.8.1connecting to: 127.0.0.1:27888/foo&system.indexessystem.userst1& use test switched to db test& show collectionsSat Apr 21 19:28:25 uncaught exception: error: {&&&&&&&&&$err& : &unauthorized db:test lock type:-1 client:127.0.0.1&,&&&&&&&&&code& : 10057}&  通过结果我们看到, 由于user1是在foo库里建立的用户,所以它不具有操作其它数据库,甚至是test库的权限。  五、导入和导出  1、MySQL导入和导出  (1)、mysqlimport  此工具位于mysql/bin目录中,是MySQL的一个载入(或者说导入)数据的一个非常有效的工具。这是一个命令行工具。有两个参数以及大量的选项可供选择。这个工具把一个文本文件(text file)导入到你指定的数据库和表中。比方说我们要从文件student.txt中把数据导入到数据库class中的表 student中:    mysqlimport class.student student.txt  (2)、load data infile  这个命令与mysqlimport非常相似,但这个方法可以在MySQL命令行中使用。 如mysqlimport工具一样,这个命令也有一些可以选择的参数。比如您需要把自己的电脑上的数据导入到远程的数据库服务器中,您可以使用下面的命令:    Load data local infile &d:\student.txt&  上面的local参数表示文件是本地的文件,服务器是您所登陆的服务器。这样就省去了使用ftp来上传文件到服务器,mysql替你完成了。  (3)、mysqldump  mysqldump工具很多方面类似相反作用的工具mysqlimport。它们有一些同样的选项。但mysqldump能够做更多的事情。它可以把整个数据库装载到一个单独的文本文件中。这个文件包含有所有重建您的数据库所需要的SQL命令。这个命令取得所有的模式并且将其转换成DDL语法,取得所有的数据,并且从这些数据中创建INSERT语句。这个工具将您的数据库中所有的设计倒转。因为所有的东西都被包含到了一个文本文件中。这个文本文件可以用一个简单的批处理和一个合适SQL语句导回到MySQL中。这个工具令人难以置信地简单而快速。决不会有半点让人头疼地地方。因此,如果您像装载整个数据库mydb的内容到一个文件中,可以使用下面的命令:    bin/mysqldump &p mydb & mydb.txt  2、MongoDB导入和导出  (1)、mongoexport导出工具  MongoDB提供了mongoexport工具,可以把一个collection导出成json格式或csv格式的文件。可以指定导出哪些数据项,也可以根据给定的条件导出数据。工具帮助信息如下:[root@localhost bin]# ./mongoexport --helpoptions:&&--help&&&&&&&&&&&&&&&&&&produce help message&&-v [ --verbose ]&&&&&&&&be more verbose (include multiple times for more &&&&&&&&&&&&&&&&&&&&&&&&&&verbosity e.g. -vvvvv)&&-h [ --host ] arg&&&&&& mongo host to connect to ( &set name&/s1,s2 for sets)&&--port arg&&&&&&&&&&&&&&server port. Can also use --host hostname:port&&--ipv6&&&&&&&&&&&&&&&&&&enable IPv6 support (disabled by default)&&-u [ --username ] arg&& username&&-p [ --password ] arg&& password&&--dbpath arg&&&&&&&&&&&&directly access mongod database files in the given &&&&&&&&&&&&&&&&&&&&&&&&&&path, instead of connecting to a mongod&&server - &&&&&&&&&&&&&&&&&&&&&&&&&&needs to lock the data directory, so cannot be used &&&&&&&&&&&&&&&&&&&&&&&&&&if a mongod is currently accessing the same path&&--directoryperdb&&&&&&&&if dbpath specified, each db is in a separate &&&&&&&&&&&&&&&&&&&&&&&&&&directory&&-d [ --db ] arg&&&&&&&& database to use&&-c [ --collection ] arg collection to use (some commands)&&-f [ --fields ] arg&&&& comma separated list of field names e.g. -f name,age&&--fieldFile arg&&&&&&&& file with fields names - 1 per line&&-q [ --query ] arg&&&&&&query filter, as a JSON string&&--csv&&&&&&&&&&&&&&&&&& export to csv instead of json&&-o [ --out ] arg&&&&&&&& if not specified, stdout is used&&--jsonArray&&&&&&&&&&&& output to a json array rather than one object per &&&&&&&&&&&&&&&&&&&&&&&&&&line[root@localhost bin]#  下面我们将以一个实际的例子说明,此工具的用法:  将foo库中的表t1导出成json格式:[root@localhost bin]# ./mongoexport -d foo -c t1 -o /data/t1.jsonconnected to: 127.0.0.1exported 1 records[root@localhost bin]#&  导出成功后我们看一下/data/t1.json文件的样式,是否是我们所希望的:[root@localhost data]# more t1.json { &_id& : { &$oid& : &4f927e4a0540a0& }, &age& : 2 }[root@localhost data]#&  通过以上说明导出成功,但有一个问题,要是异构数据库的迁移怎么办呢?例如我们要将MongoDB的数据导入到MySQL该怎么办呢?MongoDB提供了一种csv的导出格式,就可以解决异构数据库迁移的问题了. 下面将foo库的t2表的age和name列导出, 具体如下:[root@localhost bin]# ./mongoexport -d foo -c t2 --csv -f age,name -o /data/t2.csv connected to: 127.0.0.1exported 1 records[root@localhost bin]#&  查看/data/t2.csv的导出结果:[root@localhost data]# more t2.csvage,name1,&wwl&[root@localhost data]#  可以看出MongoDB为我们提供了一个强在的数据导出工具。  (2)、mongoimport导入工具  MongoDB提供了mongoimport工具,可以把一个特定格式文件中的内容导入到某张collection中。工具帮助信息如下:[root@localhost bin]# ./mongoimport --helpoptions:&&--help&&&&&&&&&&&&&&&&&&produce help message&&-v [ --verbose ]&&&&&&&&be more verbose (include multiple times for more &&&&&&&&&&&&&&&&&&&&&&&&&&verbosity e.g. -vvvvv)&&-h [ --host ] arg&&&&&& mongo host to connect to ( &set name&/s1,s2 for sets)&&--port arg&&&&&&&&&&&&&&server port. Can also use --host hostname:port&&--ipv6&&&&&&&&&&&&&&&&&&enable IPv6 support (disabled by default)&&-u [ --username ] arg&& username&&-p [ --password ] arg&& password&&--dbpath arg&&&&&&&&&&&&directly access mongod database files in the given &&&&&&&&&&&&&&&&&&&&&&&&&&path, instead of connecting to a mongod&&server - &&&&&&&&&&&&&&&&&&&&&&&&&&needs to lock the data directory, so cannot be used &&&&&&&&&&&&&&&&&&&&&&&&&&if a mongod is currently accessing the same path&&--directoryperdb&&&&&&&&if dbpath specified, each db is in a separate &&&&&&&&&&&&&&&&&&&&&&&&&&directory&&-d [ --db ] arg&&&&&&&& database to use&&-c [ --collection ] arg collection to use (some commands)&&-f [ --fields ] arg&&&& comma separated list of field names e.g. -f name,age&&--fieldFile arg&&&&&&&& file with fields names - 1 per line&&--ignoreBlanks&&&&&&&&&&if given, empty fields in csv and tsv will be ignored&&--type arg&&&&&&&&&&&&&&type of file to import.&&default: json (json,csv,tsv)&&--file arg&&&&&&&&&&&&&& if not specified stdin is used&&--drop&&&&&&&&&&&&&&&&&&drop collection first &&--headerline&&&&&&&&&&&&CSV,TSV only - use first line as headers&&--upsert&&&&&&&&&&&&&&&&insert or update objects that already exist&&--upsertFields arg&&&&&&comma-separated fields for the query part of the &&&&&&&&&&&&&&&&&&&&&&&&&&upsert. You should make sure this is indexed&&--stopOnError&&&&&&&&&& stop importing at first error rather than continuing&&--jsonArray&&&&&&&&&&&& load a json array, not one item per line. Currently &&&&&&&&&&&&&&&&&&&&&&&&&&limited to 4MB.  下面我们将以一人实际的例子说明,此工具的用法:  先看一下foo库中的t1表数据:& db.t1.find();{ &_id& : ObjectId(&4f937a56450beadc560feaa9&), &age& : 5 }&&  t1其中有一条age=5的记录, 我们再看一下json文件中的数据是什么样子的:[root@localhost data]# more t1.json{ &_id& : { &$oid& : &4f937a56450beadc560feaa7& }, &age& : 8 }[root@localhost data]#&  可以看到t1.json文件中有一条age=8的数据,下面我们将用mongoimport工具将json文件中的记录导入到t1表中:[root@localhost bin]# ./mongoimport -d foo -c t1 /data/t1.jsonconnected to: 127.0.0.1imported 1 objects&  工具返回信息说明向表中插入了一条记录. 我们进库里实际验证一下:[root@localhost bin]# ./mongoMongoDB shell version: 1.8.1connecting to: test& use fooswitched to db foo& db.t1.find();{ &_id& : ObjectId(&4f937a56450beadc560feaa9&), &age& : 5 }{ &_id& : ObjectId(&4f937a56450beadc560feaa7&), &age& : 8 }&&  结果跟我们期待的是一样的,数据成功插入到表中。  六、备份和恢复  在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。  1、MySQL备份和恢复  MySQL备份方式大体上分为以下3种:    ● 直接拷贝数据库文件    ● 使用mysqlhotcopy备份数据库    ● 使用mysqldump备份数据库  (1)、直接拷贝数据库文件  最为直接、快速、方便,缺点是基本上不能实现增量备份。为了保证数据的一致性,需要在靠背文件前,执行以下 SQL 语句:    FLUSH TABLES WITH READ LOCK;  也就是把中的数据都刷新到磁盘中,同时锁定数据表,以保证拷贝过程中不会有新的数据写入。这种方法备份出来的数据恢复也很简单,直接拷贝回原来的数据库目录下即可。  但对于 Innodb 类型表来说,还需要备份其日志文件,即 ib_logfile* 文件。因为当 Innodb 表损坏时,就可以依靠这些日志文件来恢复。  (2)、使用mysqlhotcopy备份数据库  mysqlhotcopy 是perl程序。它使用 LOCK TABLES、FLUSH TABLES 和 cp 或 scp 来快速备份数据库。对于备份数据库或单个表来说它是最快的途径,但它只能运行在本地服务器上,且mysqlhotcopy 只能备份 MyISAM表,对于Innodb表则无招可施了。  (3)、使用mysqldump备份数据库  mysqldump 是SQL级别的备份,它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最主流的备份方法。  2、MongoDB备份和恢复  MongoDB提供了两个命令来备份(mongodump )和恢复(mongorestore )数据库。  (1)、mongodump备份工具  我们先看一下此工具的帮助信息:[root@localhost bin]# ./mongodump --helpoptions:&&--help&&&&&&&&&&&&&&&&&& produce help message&&-v [ --verbose ]&&&&&&&& be more verbose (include multiple times for more &&&&&&&&&&&&&&&&&&&&&&&&&& verbosity e.g. -vvvvv)&&-h [ --host ] arg&&&&&&&&mongo host to connect to ( &set name&/s1,s2 for &&&&&&&&&&&&&&&&&&&&&&&&&& sets)&&--port arg&&&&&&&&&&&&&& server port. Can also use --host hostname:port&&--ipv6&&&&&&&&&&&&&&&&&& enable IPv6 support (disabled by default)&&-u [ --username ] arg&&&&username&&-p [ --password ] arg&&&&password&&--dbpath arg&&&&&&&&&&&& directly access mongod database files in the given &&&&&&&&&&&&&&&&&&&&&&&&&& path, instead of connecting to a mongod&&server - &&&&&&&&&&&&&&&&&&&&&&&&&& needs to lock the data directory, so cannot be used &&&&&&&&&&&&&&&&&&&&&&&&&& if a mongod is currently accessing the same path&&--directoryperdb&&&&&&&& if dbpath specified, each db is in a separate &&&&&&&&&&&&&&&&&&&&&&&&&& directory&&-d [ --db ] arg&&&&&&&&&&database to use&&-c [ --collection ] arg&&collection to use (some commands)&&-o [ --out ] arg (=dump) output directory or &-& for stdout&&-q [ --query ] arg&&&&&& json query&&--oplog&&&&&&&&&&&&&&&&&&Use oplog for point-in-time snapshotting&&--repair&&&&&&&&&&&&&&&& try to recover a crashed database[root@localhost bin]#  例如我们的系统中有一个叫做&foo&库,下面我们将演示如何将这个库备份出来:[root@localhost bin]# ./mongodump -d foo -o /data/dumpconnected to: 127.0.0.1DATABASE: foo&&&&to&&&& /data/dump/foo&&&&&&&&foo.system.indexes to /data/dump/foo/system.indexes.bson&&&&&&&&&&&&&&&& 3 objects&&&&&&&&foo.system.users to /data/dump/foo/system.users.bson&&&&&&&&&&&&&&&& 1 objects&&&&&&&&foo.t2 to /data/dump/foo/t2.bson&&&&&&&&&&&&&&&& 1 objects&&&&&&&&foo.t1 to /data/dump/foo/t1.bson&&&&&&&&&&&&&&&& 2 objects[root@localhost bin]#  通过工具返回信息,我们可以看到foo中的数据已经被备份成bson格式的文件了, 接下来我们到备份的目录下去验证一下:[root@localhost dump]# ll /data/dump/foo/总计 16-rw-r--r-- 1 root root 193 04-22 11:55 system.indexes.bson-rw-r--r-- 1 root root&&91 04-22 11:55 system.users.bson-rw-r--r-- 1 root root&&66 04-22 11:55 t1.bson-rw-r--r-- 1 root root&&49 04-22 11:55 t2.bson[root@localhost dump]#  结果证明foo库中的表已经被成功备份出来,接下来我们将演示如何将备份恢复回去。  (2)、mongorestore恢复工具  我们先看一下此工具的帮助信息:[root@localhost bin]# ./mongorestore --helpusage: ./mongorestore [options] [directory or filename to restore from]options:&&--help&&&&&&&&&&&&&&&&&&produce help message&&-v [ --verbose ]&&&&&&&&be more verbose (include multiple times for more &&&&&&&&&&&&&&&&&&&&&&&&&&verbosity e.g. -vvvvv)&&-h [ --host ] arg&&&&&& mongo host to connect to ( &set name&/s1,s2 for sets)&&--port arg&&&&&&&&&&&&&&server port. Can also use --host hostname:port&&--ipv6&&&&&&&&&&&&&&&&&&enable IPv6 support (disabled by default)&&-u [ --username ] arg&& username&&-p [ --password ] arg&& password&&--dbpath arg&&&&&&&&&&&&directly access mongod database files in the given &&&&&&&&&&&&&&&&&&&&&&&&&&path, instead of connecting to a mongod&&server - &&&&&&&&&&&&&&&&&&&&&&&&&&needs to lock the data directory, so cannot be used &&&&&&&&&&&&&&&&&&&&&&&&&&if a mongod is currently accessing the same path&&--directoryperdb&&&&&&&&if dbpath specified, each db is in a separate &&&&&&&&&&&&&&&&&&&&&&&&&&directory&&-d [ --db ] arg&&&&&&&& database to use&&-c [ --collection ] arg collection to use (some commands)&&--objcheck&&&&&&&&&&&&&&validate object before inserting&&--filter arg&&&&&&&&&&&&filter to apply before inserting&&--drop&&&&&&&&&&&&&&&&&&drop each collection before import&&--oplogReplay&&&&&&&&&& replay oplog for point-in-time restore[root@localhost bin]#  例如我们先将&foo&库删除了:[root@localhost bin]# ./mongoMongoDB shell version: 1.8.1connecting to: test& use fooswitched to db foo& db.dropDatabase();{ &dropped& : &foo&, &ok& : 1 }& show dbsadmin&& 0.0625GBlocal&& (empty)test&&&&0.0625GB&  然后下面我们将演示如何恢复这个库:[root@localhost bin]# ./mongorestore --directoryperdb /data/dumpconnected to: 127.0.0.1Sun Apr 22 12:01:27 /data/dump/foo/t1.bsonSun Apr 22 12:01:27&&&&&&going into namespace [foo.t1]Sun Apr 22 12:01:27&&&&&&2 objects foundSun Apr 22 12:01:27 /data/dump/foo/t2.bsonSun Apr 22 12:01:27&&&&&&going into namespace [foo.t2]Sun Apr 22 12:01:27&&&&&&1 objects foundSun Apr 22 12:01:27 /data/dump/foo/system.users.bsonSun Apr 22 12:01:27&&&&&&going into namespace [foo.system.users]Sun Apr 22 12:01:27&&&&&&1 objects foundSun Apr 22 12:01:27 /data/dump/foo/system.indexes.bsonSun Apr 22 12:01:27&&&&&&going into namespace [foo.system.indexes]Sun Apr 22 12:01:27 { name: &_id_&, ns: &foo.system.users&, key: { _id: 1 }, v: 0 }Sun Apr 22 12:01:27 { name: &_id_&, ns: &foo.t2&, key: { _id: 1 }, v: 0 }Sun Apr 22 12:01:27 { name: &_id_&, ns: &foo.t1&, key: { _id: 1 }, v: 0 }Sun Apr 22 12:01:27&&&&&&3 objects found[root@localhost bin]#  通过工具返回信息,我们可以看到foo中的数据已经被恢复回来了, 接下来我们到库里去验证一下:[root@localhost bin]# ./mongoMongoDB shell version: 1.8.1connecting to: test& use fooswitched to db foo&system.indexessystem.userst1t2&  结果证明foo库表已经被成功恢复回来了。
本文欢迎转载,转载请注明:转载自IT168: []
正在努力加载文档,请稍等…
点击或扫描下载
点击或扫描下载

我要回帖

更多关于 oracle dba突击 pdf 的文章

 

随机推荐