如何利用BAT文件登陆OracleSql并执行多个sql脚本PLSQL语句?

如何利用BAT文件登陆OracleSql并执行多个sql脚本PLSQL语句?,第1张

首先,做一个简单的sql文件(log.sql)。

在这个SQL文件中我们创建了一个表。

接下来,我们来建一个bat批处理文件(log.bat)。

在这个bat文件里面我们调用绝对路径的sql文件,并将执行过程及结果输出到log.txt文件中。

最后,我们运行bat文件,执行多个sql脚本plsql语句。

bat文件调用数据库中的存储过程:

假设数据库中一个存储过程,名称为Produce_log

我们只需要修改独立的sql文件如下即可:

execute Produce_log

exit

有 Apollo 用户已经提供了现成的 Dcoker 镜像 ,我们可以直接使用。不过这里还是将通过编译源代码的方式来介绍,目的是从最原始 *** 作开始,了解整个过程的实现。

环境要求

JDK 1.8+ (安装后,修改 Path 环境变量)Maven 3.5+ (安装后,修改 Path 环境变量,建议修改 Maven 源地址,加快下载速度)MySQL 5.6.5+Docker JDK 和 Maven 只在编译 Apollo 源代码时使用,实际使用 Docker 部署并不需要。

创建数据库

从部署策略图中可以看出,搭建 Apollo 环境需要使用到 PortalDB、ConfigDB 两个数据库,这两个数据库的初始脚本官方源码中已提供:

我们需要在自己的数据库上执行以上两个文件的脚本,这里将搭建一个基于 PRO 的分布式环境( 如果需要支持多个环境,需要在对应环境的数据库上建 ConfigDB,服务启动改成对应环境的数据库连接,更多请参考 调整ApolloPortalDB配置 和 调整ApolloConfigDB配置 ),如下: #构建 Docker 镜像 1. 下载最新 apollo master 分支 代码(当前是 1.5.0-SNAPSHOT),网上很多介绍都需要修改源代码后再进行编译,这个版本已有哥们提交了 Merge Request ,使在 Docker 部署上更简化了。如有特殊需要,也可自行修改源码。 2. 下载完成后在根目录下执行 .\scripts\build.bat(我是在 windows 进行编译的),编译成功后在 apollo-adminservice、apollo-configservice、apollo-portal 下的 target 目录会生成对应压缩包 pollo-configservice-1.5.0-SNAPSHOT-github.zip、apollo-adminservice-1.5.0-SNAPSHOT-github.zip、apollo-portal-1.5.0-SNAPSHOT-github.zip,这个几个文件就是我们在构建 Docker 镜像需要的 3. pollo源码中已经提供了构建 Docker 镜像的 Dockerfile 文件,apollo-configservice\src\main\docker\Dockfile、apollo-adminservice\src\main\docker\Dockfile、apollo-portal\src\main\docker\Dockfile 可以直接使用,最终如下: 4. 分别构建 Docker 镜像,然后可以通过 docker push 推送到自己的 Docker 仓库,比如 我的仓库 ,或者在要部署是机器上生成 Docker 镜像直接使用,最终得到 apollo-configservice、apollo-adminservice、apollo-portal 3个镜像。

编写 docker-compose

apollo-configservice &&apollo-adminservice:

version: '3'

services:

apollo-configservice:

image: apollo-configservice:latest # 镜像地址,这里使用的是直接在当前主机上构建的镜像

ports:

- "8080:8080"

volumes:

# 日志挂载

- /usr/local/apollo/servers/server2/logs/apollo-configservice:/opt/logs

environment:

# 可通过 SERVER_PORT 指定默认启动端口,ports 也需要对应修改

# SERVER_PORT: 8080

# 指定 homePageUrl 为当前宿主的 apollo-configservice 地址,不然会出现无法访问

JAVA_OPTS: "-Deureka.instance.homePageUrl=http://${当前主机IP}:8080"

# 数据库连接地址

DS_URL: "jdbc:mysql://${数据库IP}:${数据库Port}/ApolloConfigDB?characterEncoding=utf8"

# 数据库用户名

DS_USERNAME: "apollo"

# 数据库密码

DS_PASSWORD: "123456"

apollo-adminservice:

image: apollo-adminservice:latest # 镜像地址,这里使用的是直接在当前主机上构建的镜像

ports:

- "8090:8090"

volumes:

# 日志挂载

- /usr/local/apollo/servers/server2/logs/apollo-adminservice:/opt/logs

environment:

# 指定 homePageUrl 为当前宿主的 apollo-adminservice 地址,不然会出现无法访问

JAVA_OPTS: "-Deureka.instance.homePageUrl=http://${当前主机IP}:8090"

# 数据库连接地址

DS_URL: "jdbc:mysql://${数据库IP}:${数据库Port}/ApolloConfigDB?characterEncoding=utf8"

# 数据库用户名

DS_USERNAME: "apollo"

# 数据库密码

DS_PASSWORD: "123456"

depends_on:

- apollo-configservice

apollo-portal:

version: '3'

services:

apollo-portal:

image: apollo-portal:latest # 镜像地址,这里使用的是直接在当前主机上构建的镜像

container_name: apollo-portal

ports:

- "8070:8070"

volumes:

# 日志挂载

- /usr/local/apollo/servers/server1/logs/apollo-portal:/opt/logs

environment:

# 数据库连接地址

DS_URL: "jdbc:mysql://${数据库IP}:${数据库Port}/ApolloPortalDB?characterEncoding=utf8"

# 数据库用户名

DS_USERNAME: "apollo"

# 数据库密码

DS_PASSWORD: "123456"

# META_SERVER 地址,如 http://192.168.100.234:8080,http://192.168.100.234:8081(多个可用,分隔,建议使用 LB 域名),

PRO_META: "http://${实例1的 apollo-configservice 地址},http://${实例2的 apollo-configservice 地址}"

初始数据库数据修改

ApolloPortalDB 库的 ServerConfig 表 apollo.portal.envs 和 configView.memberOnly.envs 值修改为:pro;(因为这里我们搭建的是 PRO 的分布式环境)

ApolloConfigDB 库的 ServerConfig 表 eureka.service.url 值修改为:http://${实例1的 apollo-configservice 地址}/eureka/,http://${实例2的 apollo-configservice 地址}/eureka/;

启动服务

这里将在同一个机器上启动 1 个 apollo-portal 实例(端口 8070),2 个 apollo-configservice(端口 8080、8081)和 2 个 apollo-adminservice(端口 8090、8091)。

注意:启动的过程会比较慢,一般会在 100~200s 左右

通过访问** http://${apollo-portal 服务IP}:8070 **,输入默认用户名密码 apollo/admin 登录:(当前的测试脚本提供一个默认的测试项目,新版本的 sql 脚本可能没有 SampleApp) 通过 管理员工具 =>系统信息 可查看当前环境信息: 可以看出 Config Services 和 Admin Services 都是两个实例,我们可以模拟 kill 其中一台,服务依然是可以正常使用的。

接下来就可以创建应用,添加配置信息,提供给客户端使用,具体客户端如何使用后续将会继续介绍。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6757018.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存