收藏 分销(赏)

东南大学实用数据库复习.docx

上传人:精*** 文档编号:4521297 上传时间:2024-09-26 格式:DOCX 页数:16 大小:542.43KB 下载积分:8 金币
下载 相关 举报
东南大学实用数据库复习.docx_第1页
第1页 / 共16页
东南大学实用数据库复习.docx_第2页
第2页 / 共16页


点击查看更多>>
资源描述
东南大学实用数据库复习 实用数据库系统实践 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 2^2 可写入 w 2 2^1 可执行 x 1 2^0 权限示例 rwx rw- r-- 111 110 100 7 6 4 相关命令 chown [参数] [用户名][:组名] [文件] //更改文件的拥有用户,组 [参数] -R 递归执行 chmod [参数] [who][opt][mode] [文件] [参数] -R 递归执行 [who] 操作对象who可是下述字母中的任一个或者它们的组合: u user, owner g group, group o others, other users a all, all users, 默认值 [opt] + 增加权限 - 删除权限 = 覆盖权限 [mode] [-/r][-/w][-/x] chmod [umod][gmod][omod] [文件/目录名] [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 block>0; 发现锁定其他会话的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 block>0; 发现锁定其他会话的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> alte
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服