# 用K8S创建Oracle 19c数据库
欢迎来到本篇文章,我将会教会你如何在Kubernetes (K8S) 上创建 Oracle 19c 数据库。在这之前,请确保你已经安装好了Kubernetes 和必要的工具,并且拥有一定的基本知识。下面是整个过程的步骤概要:

| 步骤 | 操作 |
|------------------|----------------------------------|
| 步骤 1 | 在K8S中创建持久卷 |
| 步骤 2 | 创建Oracle 19c的部署文件 |
| 步骤 3 | 部署Oracle 19c数据库 |
| 步骤 4 | 配置服务以访问数据库 |
| 步骤 5 | 连接到数据库并进行验证 |

### 步骤 1: 在K8S中创建持久卷
首先,我们需要为 Oracle 19c 数据库创建持久卷,以便在数据库部署期间存储数据。这里我们使用的是 NFS 这种存储类型。

```yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: oracle19c-pv
spec:
capacity:
storage: 20Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
nfs:
server: nfs-server-ip
path: /path/to/nfs/share
```

### 步骤 2: 创建Oracle 19c的部署文件
接下来,我们需要创建一个部署文件,用来启动 Oracle 19c 的容器。这里我们使用 Oracle 官方提供的容器镜像。

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: oracle-19c
spec:
replicas: 1
selector:
matchLabels:
app: oracle-19c
template:
metadata:
labels:
app: oracle-19c
spec:
containers:
- name: oracle-19c
image: oracle/database:19.3.0-ee
ports:
- containerPort: 1521
- containerPort: 5500
volumeMounts:
- name: oracle19c-pv
mountPath: /opt/oracle/oradata
```

### 步骤 3: 部署Oracle 19c数据库
现在,我们可以通过kubectl命令来部署 Oracle 19c 数据库。

```bash
kubectl apply -f oracle19c-pv.yaml
kubectl apply -f oracle-19c-deployment.yaml
```

### 步骤 4: 配置服务以访问数据库
为了从外部访问数据库,我们需要创建一个 NodePort 服务,让我们来创建一个服务文件。

```yaml
apiVersion: v1
kind: Service
metadata:
name: oracle-19c-service
spec:
type: NodePort
selector:
app: oracle-19c
ports:
- port: 1521
targetPort: 1521
nodePort: 30321
```

```bash
kubectl apply -f oracle-19c-service.yaml
```

### 步骤 5: 连接到数据库并进行验证
最后,我们可以使用 SQL*Plus 等工具连接到数据库,并进行验证。

```bash
# 连接到数据库
sqlplus sys as sysdba

# 验证数据库版本
SELECT * FROM v$version;
```

通过以上步骤,你已经成功在Kubernetes上创建了 Oracle 19c 数据库。希望这篇文章对你有所帮助,如果有任何问题或疑问,请随时留言。祝你学习进步,谢谢!