手工初始化数据库

博客主要讲述数据库更新时,若已有类的实体对象,会报错或出现‘ORA中对象已被占用’提示。并给出两种解决方法,方法一是通过一系列命令操作,如dropdb、initdb等;方法二则是先编译、注销模块,再进行文件拷贝、执行sql语句等操作来更新数据库。

1. 增加类的key,如果数据库中已有类的实体对象,则更新数据库时会报错或者出现“ORA中对象已被占用”的提示信息。

解决方法一、

第一步:进入test目录下运行dropdb命令,使用两个参数-f-p-f后面的文件为svr目录中的tmit.prd文件,-p后面为test目录下的密码文件;

第二步:在test目录下运行initdb –f tmti.prd,此tmti.prdtest目录下得tmti.prd;

第三步:在test目录下启动muxstartdspstart,运行objload –f test.dat –k 11.key

第四步:在test目录下运行objload –f 11.key

第五步: test目录下的tmti.prd文件拷贝到dir目录下,改名为tmti.bak,覆盖原有的tmti.bak文件;

第六步:编译,更新数据库

解决方法二、

第一步:首先编译,然后在svr目录下,打开mti.prd文件,将用户的模块如(stxen_us.prd)注销(注意,不要nmake clobber clean),直接nmake init

第二步:将tmti.prd文件拷贝到dir下(这个是否是现在的还是起先的,需要搞清),改名为tmti.bak文件

第三步:编译,updatedb,在dir目录下生成alterdb.msql文件

第四步:在开始菜单中,运行sql plus,进入窗口,将alterdb.msql文件中的内容全部复制到窗口中的slq>下面,执行commit命令(可省略)

第五步:重新加入自己的模块,编译,更新数据库

### 如何在 Hive 中初始化数据库 #### 准备工作 为了成功完成 Hive 数据库初始化操作,需要确保环境已经配置好 MySQL 或其他支持的 RDBMS 来存储元数据[^1]。这通常涉及安装并启动 Hadoop 和 Hive 的必要组件。 #### 登录到 MySQL 数据库 通过命令行或其他工具连接至已安装好的 MySQL 实例。假设 MySQL 已经运行正常,则可以执行如下 SQL 命令来验证连接状态: ```sql mysql -u root -p ``` 输入密码后进入 MySQL 控制台[^1]。 #### 创建用于 Hive 存储元数据的数据库 一旦成功登录到 MySQL 后端服务,下一步就是创建一个新的数据库实例供 Hive 使用作为其内部结构定义的位置保存区。以下是具体实现方法之一: ```sql CREATE DATABASE hive_db; USE hive_db; ``` 这里 `hive_db` 是新建立起来专门服务于 Apache Hive 应用程序需求的一个独立逻辑单元名称;当然也可以替换为自己喜欢的名字只要不与其他现有对象冲突即可[^1]。 #### 配置 Hive 客户端指向新建好的 MySQL 数据源地址 编辑位于 `$HIVE_HOME/conf/hive-site.xml` 文件,在其中添加或者修改下面几项参数设置以便让 Hive 知道去哪里寻找它的外部依赖关系——即刚才手工构建出来的那个叫作 “hive_db” 的地方: ```xml <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive_db?createDatabaseIfNotExist=true&useSSL=false</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>YourMysqlRootPasswordHere</value> </property> ``` 注意将 `<value>` 字段中的内容替换成实际环境中对应的值,比如主机名、端口号以及认证凭证等信息[^1]。 #### 初始化 Hive 元数据仓库 当所有的前期准备都完成后就可以正式开始初始化过程了。切换回终端窗口然后简单地调用以下指令触发整个流程自动完成: ```bash schematool -dbType mysql -initSchema ``` 这条语句会依据当前系统所指定的目标位置(也就是之前提到过的那个名为 `hive_db` 的特殊区域),按照官方默认模式填充必要的基础架构描述资料进去形成完整的功能框架体系。 #### 查看 Hive 元数据仓库的内容 如果一切顺利的话现在应该能够看到一些预设的基础表单列表被正确加载到了目标容器之中。可以通过开启 Beeline CLI 并尝试查询这些资源来进行确认: ```bash beeline -u jdbc:hive2:// !connect jdbc:hive2:// localhost:10000 default $username $password SHOW TABLES IN system; DESCRIBE FORMATTED system.metadata_table_example; ``` 以上步骤展示了如何利用 Beeline 查询语言探索刚刚生成的数据字典组成部分情况。 #### 测试 Hive 是否能正常使用新的元数据仓储设施 最后一步也是至关重要的环节就是要检验整体解决方案是否达到了预期效果。为此可以从头再来一遍常规的任务提交演练看看是否存在异常现象发生: ```sql CREATE EXTERNAL TABLE IF NOT EXISTS test_init ( id INT, name STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE LOCATION '/tmp/test_hive_init'; SELECT * FROM test_init LIMIT 5; DROP TABLE test_init; ``` 这样就完成了从零起步直至最终交付可用成果的一整套标准化作业指导手册。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值