提交 28cf8c15 编写于 作者: M Mars Liu

fly on exercises

上级 a0e2e96a
......@@ -2,5 +2,5 @@
"node_id": "pg-940afa6d71af44f689011ded8fd91a98",
"keywords": [],
"children": [],
"export": []
"export": ["install.json"]
}
\ No newline at end of file
# 安装
下列内容,不正确的是哪一项?
## 答案
安装过程需要 root 权限,也应该将 root 设置为超级用户。
## 选项
### A
在 Linux 上,可以用发行版自带的软件安装服务安装,用 systemctl 管理。
### B
在 FreeBSD 上,可以用 ports 安装。
### C
在 windows 上,可以下载安装包进行安装。
### D
PostgreSQL 默认的超级用户名为 postgres 。
### E
修改 postgres.conf 配置文件,可以修改 PG 的监听地址和端口。
{
"node_id": "pg-586916fe52e245efb399ae862378f87f",
"keywords": [],
"keywords": ["登录", "身份验证", "授权"],
"children": [],
"export": []
"export": ["login.json"]
}
\ No newline at end of file
{
"type": "code_options",
"author": "刘鑫",
"source": "grant.md",
"notebook_enable": false
"source": "login.md",
"notebook_enable": false,
"exercise_id": "54917a4c69af41749d1c2a4430267f27"
}
\ No newline at end of file
# 登录
你的团队有一个公用的开发服务器,你要安装一个 PostgreSQL 服务公用,你们希望每位同事
使用一个独立的开发数据库,不互相混淆。同时这个服务器不向其他部门开放。数据也希望有足
够的安全保障。你的同事们都有这台开发服务器的 ssh 账号,平时远程登录到服务器上工作。
下面哪个组合最符合你们的需求?
1. 为每位同事建立一个数据库账号
2. 初始化口令为123456,告知他们登录后修改密码。
3. 为每位同事建立对应的开发数据库,将他们的用户设置为该数据库的 owner
4. 将每位同事的用户身份都设置为superuser,并禁止他们登录别人的数据库
5. 为每位同事建立一个与操作系统账号同名的数据库账号
6. 修改 pg_hba.conf ,设置本地用户可以用操作系统集成登录
7. 设置 postgres 账号口令为 123456,群发告知同事
## 答案
```
5, 3, 6
```
## 选项
### A
```
1, 2, 4
```
### B
```
1, 2, 4, 6
```
### C
```
5, 2, 4
```
### D
```
5, 2, 4, 6
```
### E
```
7, 6
```
### F
```
2, 3, 4, 5, 6, 7
```
\ No newline at end of file
......@@ -2,5 +2,6 @@
"type": "code_options",
"author": "刘鑫",
"source": "grant.md",
"notebook_enable": false
"notebook_enable": false,
"exercise_id": "0766e022b61f4c83b4fe64cd8e4e5e9b"
}
\ No newline at end of file
......@@ -2,5 +2,6 @@
"type": "code_options",
"author": "刘鑫",
"source": "revoke.md",
"notebook_enable": false
"notebook_enable": false,
"exercise_id": "65de2267ccb7478db916d517d4b5bce7"
}
\ No newline at end of file
......@@ -2,5 +2,6 @@
"type": "code_options",
"author": "刘鑫",
"source": "role.md",
"notebook_enable": false
"notebook_enable": false,
"exercise_id": "f093e146721541139080bc01ffd39750"
}
\ No newline at end of file
......@@ -2,5 +2,5 @@
"node_id": "pg-69d3a1c646004e1da497fed2af57806c",
"keywords": [],
"children": [],
"export": []
"export": ["paged.json"]
}
\ No newline at end of file
{
"type": "code_options",
"author": "刘鑫",
"source": "backup.md",
"notebook_enable": false
}
\ No newline at end of file
# 高可靠备份
你的团队有一个非常重要的业务数据库,希望在需要时,可以重建它在一周内任意某个时间点的状态。下列规划中不必要的是:
1. 对 WAL 日志建立备份,按时间保留所有的 WAL 文件作为增量备份
2. 每天做一次冷备
3. 需要重现时,用离目标时间点最近的前一次冷备恢复一个数据库节点,启动为 standby 状态,用对应的 wal 恢复。
4. 建立流备份节点
5. 每天非高峰期将数据库离线,完整复制一份数据区目录
## 答案
```
4, 5
```
## 选项
### A
```
1, 2
```
### B
```
3
```
### C
```
以上所有工作都需要,没有多余项
```
### D
```
2, 4
```
\ No newline at end of file
......@@ -2,5 +2,8 @@
"node_id": "pg-58e924e93b564a24abb1e6b9cdfbc094",
"keywords": [],
"children": [],
"export": ["standby.json"]
"export": [
"standby.json",
"backup.json"
]
}
\ No newline at end of file
......@@ -2,5 +2,6 @@
"type": "code_options",
"author": "刘鑫",
"source": "standby.md",
"notebook_enable": false
"notebook_enable": false,
"exercise_id": "491d9bdd19c04279ac607b73a63bb3e6"
}
\ No newline at end of file
......@@ -2,5 +2,6 @@
"type": "code_options",
"author": "刘鑫",
"source": "stream.md",
"notebook_enable": false
"notebook_enable": false,
"exercise_id": "061bfb92b674438cb56a6cf72c406cbb"
}
\ No newline at end of file
{
"type": "code_options",
"author": "刘鑫",
"source": "json.md",
"notebook_enable": false
}
\ No newline at end of file
# 匹配
表 book 的 meta 有类似如下结构:
```json
{
"author": [
"Mars Liu",
"Milly Lee"
],
"ISBN": "xxxx-xxxx-xxxxxx",
"version": 1
}
```
该字段有 gist 索引。
如果我们想高效率的找到所有作者包含 Jim Gray 的书,应该如何查询?
## 答案
```postgresql
select * from book where meta @> '{"author": ["Jim Gray"]}'::jsonb;
```
## 选项
### A
```postgresql
select * from book where meta @> '["Jim Gray"]'::jsonb;
```
### A
```postgresql
select * from book where 'Jim Gray' in meta;
```
### B
```postgresql
select * from book where meta::text like '%Jim Gray%';
```
### C
```postgresql
select * from book having meta @> 'Jim Gray'
```
### D
```postgresql
select * from book where 'Jim Gray' in (meta #>> 'author');
```
# 标签
现有一个表 sku:
```postgresql
create table sku(
id serial primary key ,
name text,
meta jsonb default '{}'::jsonb,
tags jsonb default '[]'::jsonb
)
```
我们希望查找包含所有给定tag的商品,那么查询应该是:
## 答案
```postgresql
select id, name, meta, tags from sku where tags @> $1;
```
## 选项
### A
```postgresql
select id, name, meta, tags from sku where tags = $1;
```
### B
```postgresql
select id, name, meta, tags from sku where tags::text = $1;
```
### C
```postgresql
select id, name, meta, tags from sku where $1 in tags;
```
### D
```postgresql
select id, name, meta, tags from sku where tags in $1;
```
......@@ -2,5 +2,6 @@
"type": "code_options",
"author": "刘鑫",
"source": "daily_payment.md",
"notebook_enable": false
"notebook_enable": false,
"exercise_id": "5e355cc9197a4d02a54f045301c88ace"
}
\ No newline at end of file
......@@ -2,5 +2,6 @@
"type": "code_options",
"author": "刘鑫",
"source": "daily_payment_2.md",
"notebook_enable": false
"notebook_enable": false,
"exercise_id": "9295152720b74c65a0236cec175f6dce"
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册