东南大学实用数据库复习_第1页
东南大学实用数据库复习_第2页
东南大学实用数据库复习_第3页
东南大学实用数据库复习_第4页
东南大学实用数据库复习_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实用数据库系统实践 30 个选择题: Linux 相关 1.Linux 目录 / 根目录 /home 主目录 /root 管理员的主目录 /tmp 临时文件 /etc 存放 Linux 服务器软件的配置信息 /var 服务器运行产生日志 /sbin 管理员执行的命令 /bin 普通用户执行的命令 /dev 设备文件 2.一些基本操作命令 head -n 文件 查看文件的前 n 行内容 tail -n 文件 查看文件的前 n 行内容 cat 文件 查看文件所有内容, 适合查看小文件 more 文件 Enter 一行 空格一屏 q 退出 less 文件 上下键一行 空格一屏 q 退出 wc 文件 统计 行数,单词数 ,字符数 touch 文件 建立空文件 -p 目录不存在则创建 mkdir 文件 建立空目录 rmdir 文件 删除空目录 cp opt 文件 文件 -r 递归执行 mv opt 文件 文件 rm opt 文件 文件 3.TAB 键补全 单击 补全命令/文件/ 目录 双击 列出输入字符开头的所有命令/文件/目录 4.文件权限 三级用户权限 文件所有用户 文件所有组 其他用户 权限标识 可读取 r 4 22 可写入 w 2 21 可执行 x 1 20 权限示例 rwx rw- r- 111 110 100 7 6 4 相关命令 chown 参数 用户名:组名 文件 /更改文件的拥有用户,组 参数 -R 递归执行 chmod 参数 whooptmode 文件 参数 -R 递归执行 who 操作对象 who 可是下述字母中的任一个或者它们的组合 : u user, owner g group, group o others, other users a all, all users, 默认值 opt + 增加权限 - 删除权限 = 覆盖权限 mode -/r-/w-/x chmod umodgmodomod 文件/目录名 umod 0 1 2 3 4 5 6 7 000 001 010 011 100 101 110 111 - -x -w- -wx r- r-x rx- rwx gmod 0 1 2 3 4 5 6 7 000 001 010 011 100 101 110 111 - -x -w- -wx r- r-x rx- rwx omod 0 1 2 3 4 5 6 7 000 001 010 011 100 101 110 111 - -x -w- -wx r- r-x rx- rwx 5.查看 Linux 进程 ps /列出某个进程 -A /显示所有程序 -e /此参数的效果和指定“A“ 参数相同 -f /显示 UID, PPIP, C, STIME 栏位 grep pname /查找 | /管道命令, 同时执行 ps -ef|grep python /列出 python 进程信息 kill 参数 pid /结束进程 -2 发送 Ctrl+c 请求 -9 强制终止 -15 发送 Ctrl+请求 Oracle 数据库相关 6.Oracle 服务器体系结构 使用 SQL 兼容 C/S 架构,B/S 架构 Oracle Server = Instance + Database Instance = Process + memory Database = 多种 File(Disk) 7.启动服务器 单命令 SQL startup 分步骤 1.startup nomount; /读初始化参数文件,启动实例 ,但不加载数据库 ORACLE instance started. 2.alter database mount; /加载数据库控制文件 Database mounted. 3.alter database open; /根据控制文件找到并打开数据文件和日志文件, 打开数据库 Database opened. 8.关闭服务器 shutdown normal; 等待所有会话断开连接 shutdown transactional; 等待所有会话完成事务 shutdown immediate; 不等待所有会话完成事务 shutdown abort; 立即关闭实例 9.更改参数文件, scope db_name 8 字符 字母$#_ 不可修改 processes 最小值 6 最大依赖 OS 不可修改 JAVA_POOL_SIZE 可修改 show parameter java_pool_size; alter system set java_pool_size=20M scope=both; 立即生效并保存(默认值) alter system set java_pool_size=32M scope=memory; 立即生效不保存 alter system set java_pool_size=24M scope=spfile; 保存且下次生效 10.服务器网络设置 主机名 server1.example.coom 服务名 orcl.example.coom 监听器 LISTENER 打开 使用 Oracle 账户操作 lsnrctl status/start/stop; 进程 ps ef | grep tnslsnr 文件 /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora 默认名 LISTENER 端口 1521 协议 TCP (第五天:) 11.启动监听器、服务器、企业管理器 1.监听器 lsnrctl status 2.服务器 sqlplus / as sysdba SQL startup 3.Oracle Enterprise Manager emctl status dbconsole emctl start dbconsole 进入 https:/主机名:1158/em 12.创建账户 create user 用户名 identified by “密码“; 13.权限 grant create session to jack; grant create table to jack; revoke create table from jack; 系统权限的撤销不级联 grant create session to jack with admin option; grant create table to jack with admin option; 对象权限的撤销级联 grant select on hr.employees to jack with grant option; 14.数据库并发性 DML 增删改合 DDL create drop 等 行锁 TX 表锁 TM 2 row share 表级行共享锁. SELECT FROM FOR UPDATE 时申请, 允许申请 2345 3 row exclusive 表级行排他锁. 非全表 DML 时申请, 允许申请( 删改时非本行)23 4 share 全表共享锁. SELECT * FROM FOR UPDATE 时申请, 允许申请 24, 不允许 DML 5 share row exclusive 全表行排他锁. 4 下申请 3 升级而来, 允许申请(删改时非本行)2, 不允许 DML 6 exclusive 全表排它锁. DDL 时申请 , 不与任何锁共存,不允许其他会话读取修改 手工加锁语句 SQL LOCK TABLE 表名 IN 锁级别 MODE; 锁释放 事务 commit/事务 rollback/事务结束 解决锁冲突(dba 账户) SQL select sid from v$lock where block0; 发现锁定其他会话的 SID SQL select serial# from v$session where sid=会话 ID; 查找序列号 SQL alter system kill session 会话 ID, 序列号 immediate; 结束会话 19.UNDO 还原 查看参数 show parameter undo_tablespace 创建 UNDO 数据文件 create undo tablespace undotbs2 datafile /u01/app/oracle/oradata/orcl/undotbs2.dbf size 50M autoextend on next 10M maxsize 30G; 设置 UNDO 空间 SQL alter system set undo_tablespace=undotbs2; 设置保留时间 SQL alter system set undo_retention=86400(秒); 修改 UNDO 数据文件的大小 SQL alter database datafile /u01/app/oracle/oradata/orcl/undotbs2.dbf resize 200M; 自动管理 SQL alter system set undo_management=AUTO; 保留确保机制 SQL alter tablespace undotbs2 retention guarantee/ noguarantee; 20.备份和恢复 可以备份 数据 控制 参数 不可备份 日志文件 设置归档路径 mkdir -p /u01/arch01 SQL alter system set log_archive_dest_1=location=/u01/arch01; 开启归档 SQL shutdown immediate; SQL startup mount; SQL alter database archivelog; SQL alter database open; 备份工具 Recovery Manager RMAN backup datafile /u01/app/oracle/oradata/orcl/users01.dbf; 数据文件 RMAN backup current controlfile; 控制文件 RMAN backup spfile; 参数文件 RMAN backup datafile 4, 5; RMAN backup tablespace users, example; 表空间 users, example RMAN backup database; 数据库 RMAN backup archivelog all; 归档文件 (第九天:) 21.闪回技术 1.闪回删除表 对应 drop table 语句 例外 :系统表空间中 system 的表 不受回收站保护 前提 : recyclebin = ON SQL alter system set recyclebin = ON; 查看回收站 SQL show recyclebin; (可以查看到表的原始名称和回收站中名称) SQL select count(*) from “BIN$SdtN9PxJvp/gUAB/AQBSBA=$0“; 步骤 : 执行闪回 SQL flashback table 原表名/“回收站表名“ to before drop (可选) rename to 新表名 ; 删除表时同时清除回收站 SQL drop table test02 purge; 清除回收站中的表 SQL purge table other_test02; 2.闪回查询 对应 DML 语句误操作 尚未提交 rollback 已经提交 闪回查询 前提 : undo_management = auto SQL show parameter undo; SQL alert system set undo_management = auto; SQL alert system set undo_retention = 900; 步骤 : 1.获取误操作前的时间戳( 可以省略此步) SQL select to_char(sysdate, yyyy-mm-dd hh24:mi:ss) time, from dual; 结果: TIME - 2010-06-29 23:03:14 2.闪回表 SQL alter table employees enable row movement;/开启闪回表的行迁移 SQL flashback table employees to timestamp to_timestamp(2010-06-29 23:03:14, yyyy-mm-dd hh24:mi:ss); 3.闪回数据库 对应 truncate table 语句(清空表中的内容 ) 前提 :数据库归档模式 (必须在服务器 mount 阶段修改) 01.关闭服务器( 如果开启 ) SQL shutdown immediate; 02.启动到 mount 阶段 SQL startup mount; 03.开启数据库闪回功能 SQL alter database flashback on; 04.打开数据库 SQL alter database open; 05.设置备份时间 SQL alter system set db_flashback_retention_target=2880; 06.查看确认 SQL select flashback_on from v$database; 步骤 : (必须在服务器 mount 阶段闪回) 01.关闭服务器( 如果开启 ) SQL shutdown immediate; 02.启动到 mount 阶段 SQL startup mount; 03.闪回数据库 SQL flashback database to timestamp to_timestamp(2017-03-17 20:43:16,YYYY-MM-DD HH24:MI:SS); 04.打开数据库并清空日志 SQL alter database open resetlogs; 附加步骤 :重备份 01. RMAN delete backup; 02. RMAN delete copy; 03. RMAN backup database; MySQL 数据库 (第十天:) 22.MySQL 体系结构 连接层 通信协议 TCPIP(Windows/Linux) Socket(Linux) share memory(Windows) name pipe(windows) 线程 每一个客户分配连接线程 验证 用户名 口令 主机 SQL 层 解析器 select * from emp where id=1; 授权 检查权限 优化器 生成计划 查询执行 查询 查询高速缓存 保存查询结果 查询日志记录 存储层 存放在内存 MEMORY 存放在磁盘 引擎 InnoDB/Myisam 存放在网络 NDB 23.MySQL 命令 客户机命令程序( 需要数据库用户名密码认证) mysql /usr/bin/mysql mysql show databases; 查看有多少数据库 mysql use mysql 使用某个数据库 mysql show tables; 表 mysql show engines; 存储引擎 mysql show variables; 查看服务器变量 mysql show status; 查看服务器状态 SQL 语句 mysql create table students(stu_id int,stu_name char(10); mysql insert into students values(1,jack); mysql show variables like autocommit; mysqladmin /usr/bin/mysqladmin mysqladmin OPTIONS command command-option command command-option create db_name drop db_name password new_password ping processlist mysqlcheck:检查数据库表的完整性。 mysqldump: 创建逻辑备份。 mysqlimport:导入文本数据文件。 mysqlshow:显示数据库、表和列信息。 mysqlslap:模仿客户机负载。 管理和使用程序( 无需数据库用户名密码认证) innochecksum:脱机检查 InnoDB 表空间文件。 mysqlaccess:检查访问特权。 mysqldumpslow:汇总慢速查询日志文件。 mysqlbinlog:显示二进制日志文件。 (第十一天:) 24.系统的安装 脚本 1.建立数据库 scripts/mysql_install_db -user=mysql -basedir=/usr/local/mysql -datadir=/usr/local/mysql/data 2.安全加固 mysql /usr/bin/mysql_secure_installation (第十三天:) 25.二进制日志 1.错误日志 开启 ./usr/local/mysql/bin/mysqld_safe -user=mysql -log_error=/usr/local/mysql/data/mysqld.err 重启服务器 service mysql restart 2.常规查询 开启 ./usr/local/mysql/bin/mysqld -user=mysql -general_log=1 -general_log_file=/usr/local/mysql/data/mysqld.log 查看 cat /usr/local/mysql/data/ mysqld.log 3.慢速查询 开启 ./usr/local/mysql/bin/mysqld -user=mysql -slow_query_log=1 -slow_query_log_file=/usr/local/mysql/data/mysqld_slow.log -long_query_time=3 查看 mysql show variables like slow_query_log%; 测试 select sleep(4); cat /usr/local/mysql/data/mysqld_slow.log 4.二进制日志 开启 ./usr/local/mysql/bin/mysqld -user=mysql -binlog_format=ROW/STATEMENT 查看 mysqlbinlog /usr/local/mysql/data/1.000003 5.企业审计 mysql show variables like plugin_dir; 20 个填空题: (第二天:) 1.监听器 使用 Oracle 账户操作 进程 tnslsnr 文件 /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora 默认监听器名字 LISTENER lsnrctl status/start/stop; 2.客户端登录 sqlplus 账户名/密码 3.Oracle 数据库文件 1.数据文件 select name from v$datafile; 2.日志文件 select member from v$logfile; 3.控制文件 select name from v$controlfile; 4.参数文件 /u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileorcl.ora 5.口令文件 /u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapworcl 6.跟踪文件目录 /u01/app/oracle/diag/rdbms/orcl/orcl/trace/ 7.预警文件 /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log (第三天:) 4.配置监听器 cat /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora 5.连接方式 sqlplus sqlplus 账户名/密码 主机名或地址 :端口/ 服务名 6.数据库中逻辑对象, 物理对象 查看 oracle 数据文件 select name from v$datafile; select name from v$tempfile; 查看 oracle 表空间 select tablespace_name from dba_data_files; 查看以上的关系 select tablespace_name,file_name from dba_data_files; 7.表空间 创建表空间 create tablespace tbs2 datafile /u01/app/oracle/oradata/orcl/tbs2_1.dbf size 20M autoextend on next 10M maxsize 20G ,.; 删除表空间 drop tablespace tbs2; drop tablespace tbs1 including contents; drop tablespace tbs2 including contents and datafiles; (第六天:) 8.数据库并发性 DML 增删改合 DDL create drop 等 行锁 TX 表锁 TM 2 row share 表级行共享锁. SELECT FROM FOR UPDATE 时申请, 允许申请 2345 3 row exclusive 表级行排他锁. 非全表 DML 时申请, 允许申请( 删改时非本行)23 4 share 全表共享锁. SELECT * FROM FOR UPDATE 时申请, 允许申请 24, 不允许 DML 5 share row exclusive 全表行排他锁. 4 下申请 3 升级而来, 允许申请(删改时非本行)2, 不允许 DML 6 exclusive 全表排它锁. DDL 时申请 , 不与任何锁共存,不允许其他会话读取修改 手工加锁语句 SQL LOCK TABLE 表名 IN 锁级别 MODE; 锁释放 事务 commit/事务 rollback/事务结束 解决锁冲突(dba 账户) SQL select sid from v$lock where block0; 发现锁定其他会话的 SID SQL select serial# from v$session where sid=会话 ID; 查找序列号 SQL alter system kill session 会话 ID, 序列号 immediate; 结束会话 9.创建 UNDO 表空间 create undo tablespace undotbs2 datafile /u01/app/oracle/oradata/orcl/undotbs2.dbf size 50M autoextend on next 10M maxsize 30G; (第八、九天:) 10.闪回技术 1.闪回删除表 对应 drop table 语句 例外 :系统表空间中 system 的表 不受回收站保护 前提 : recyclebin = ON SQL alter system set recyclebin = ON; 查看回收站 SQL show recyclebin; (可以查看到表的原始名称和回收站中名称) SQL select count(*) from “BIN$SdtN9PxJvp/gUAB/AQBSBA=$0“; 步骤 : 执行闪回 SQL flashback table 原表名/“回收站表名“ to before drop (可选) rename to 新表名 ; 删除表时同时清除回收站 SQL drop table test02 purge; 清除回收站中的表 SQL purge table other_test02; 2.闪回查询 对应 DML 语句误操作 尚未提交 rollback 已经提交 闪回查询 前提 : undo_management = auto SQL show parameter undo; SQL alert system set undo_management = auto; SQL alert system set undo_retention = 900; 步骤 : 1.获取误操作前的时间戳( 可以省略此步) SQL select to_char(sysdate, yyyy-mm-dd hh24:mi:ss) time, from dual; 结果: TIME - 2010-06-29 23:03:14 2.闪回表 SQL alter table employees enable row movement;/开启闪回表的行迁移 SQL flashback table employees to timestamp to_timestamp(2010-06-29 23:03:14, yyyy-mm-dd hh24:mi:ss); 3.闪回数据库 对应 truncate table 语句(清空表中的内容 ) 前提 :数据库归档模式 (必须在服务器 mount 阶段修改) 01.关闭服务器( 如果开启 ) SQL shutdown immediate; 02.启动到 mount 阶段 SQL startup mount; 03.开启数据库闪回功能 SQL alter database flashback on; 04.打开数据库 SQL alter database open; 05.设置备份时间 SQL alter system set db_flashback_retention_target=2880; 06.查看确认 SQL select flashback_on from v$database; 步骤 : (必须在服务器 mount 阶段闪回) 01.关闭服务器( 如果开启 ) SQL shutdown immediate; 02.启动到 mount 阶段 SQL startup mount; 03.闪回数据库 SQL flashback database to timestamp to_timestamp(2017-03-17 20:43:16,YYYY-MM-DD HH24:MI:SS); 04.打开数据库并清空日志 SQL alter database open resetlogs; 附加步骤 :重备份 01. RMAN delete backup; 02. RMAN delete copy; 03. RMAN backup database; 11.临时文件损坏/ 口令文件损坏 介质损坏 5 临时文件 (临时表空间) 1.给临时表空间添加一个临时文件 SQL alter tablespace temp add tempfile /u01/app/oracle/oradata/orcl/temp02.dbf size 20M autoextend on; 2.清除损坏的临时文件 SQL alter tablespace temp drop tempfile /u01/app/oracle/oradata/orcl/temp01.dbf; 介质损坏 6 口令文件丢失 重建口令文件( 用 oracle 帐号运行) sqlplus / as sysdba SQL orapwd file=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapworcl password=oracle_4U; MySQL (第十天:) 12.给 MySQL 管理员重新设置口令 rootdbs321a # mysql -uroot -pMD2M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论