In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-09-20 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Database >
Share
Shulou(Shulou.com)06/01 Report--
Trove upgrade is used to update the database from one version to another, such as changing mysql5.5 to mysql5.6
Trove/taskmanager/manager.py line 368
Def upgrade (self, context, instance_id, datastore_version_id): instance_tasks = models.BuiltInstanceTasks.load (context, instance_id) datastore_version = DatastoreVersion.load_by_uuid (datastore_version_id) with EndNotification (context): instance_tasks.upgrade (datastore_version)
Instance_tasks.upgrade (datastore_version) call
Trove/taskmanager/models.py 1501 lines
Def upgrade (self, datastore_version):... Try: upgrade_info = self.guest.pre_upgrade ()... Self.server.rebuild (datastore_version.p_w_picpath_id, files=injected_files)... If volume: upgrade_info ['device'] = volume_device self.guest.post_upgrade (upgrade_info) self.reset_task_status ()...
Upgrade instance is mainly completed in the following steps:
Self.guest.pre_upgrade: some actions before updating, mainly to save the configuration file of mysql in cinder volume
Self.server.rebuild: rebuilds the nova instance of trove with the new database base mirror
Self.guest.post_upgrade: some actions after rebuilding the nova instance, the main operation is to restore the mysql configuration file from the cinder volume and start the mysql
Self.guest.pre_upgrade,self.guest.post_upgrade calls the corresponding method of trove-guestagent running on nova instance through rcp.
Trove/guestagent/datastore/mysql/_common/manager.py 245 Lin
Def pre_upgrade (self, context): app = self.mysql_app (self.mysql_app_status.get ()) data_dir = app.get_data_dir () mount_point _ data = os.path.split (data_dir) save_dir = "% s/etc_mysql"% mount_point save_etc_dir = "% s/etc"% mount_point home_save = "% s/trove_user"% mount_point app.status.begin_restart () app.stop_db () if operating_system.exists ("/ etc/my.cnf" As_root=True): operating_system.create_directory (save_etc_dir, as_root=True) operating_system.copy ("/ etc/my.cnf", save_etc_dir, preserve=True, as_root=True) operating_system.copy ("/ etc/mysql/.", save_dir, preserve=True As_root=True) operating_system.copy ("% mount_point': mount_point."% os.path.expanduser ('~'), home_save, preserve=True, as_root=True) self.unmount_volume (context, mount_point=data_dir) return {'mount_point': mount_point,' save_dir': save_dir 'save_etc_dir': save_etc_dir, 'home_save': home_save}
Pre_upgrade backup database configuration file, guestagent configuration information located in the trove home directory, and returns a dictionary containing backup information
Trove/guestagent/datastore/mysql/_common/manager.py 275 lines
Def post_upgrade (self, context, upgrade_info): app = self.mysql_app (self.mysql_app_status.get ()) app.stop_db () if 'device' in upgrade_info: self.mount_volume (context, mount_point=upgrade_info [' mount_point'], device_path=upgrade_info ['device'] Write_to_fstab=True) if operating_system.exists (upgrade_info ['save_etc_dir'], is_directory=True, as_root=True): operating_system.copy ("% s etc."% upgrade_info [' save_etc_dir'], "/ etc", preserve=True As_root=True) operating_system.copy ("% s home_save'."% upgrade_info ['save_dir'], "/ etc/mysql", preserve=True, as_root=True) operating_system.copy ("% s as_root=True."% upgrade_info [' home_save'], os.path.expanduser ('~') Preserve=True, as_root=True) self.configuration_manager.refresh_cache () app.start_mysql ()
Post_upgrade restores the configuration files in the backup, does not modify any files of the old database, and directly uses the configuration files and data files of the old database to start the database.
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
The market share of Chrome browser on the desktop has exceeded 70%, and users are complaining about
The world's first 2nm mobile chip: Samsung Exynos 2600 is ready for mass production.According to a r
A US federal judge has ruled that Google can keep its Chrome browser, but it will be prohibited from
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
About us Contact us Product review car news thenatureplanet
More Form oMedia: AutoTimes. Bestcoffee. SL News. Jarebook. Coffee Hunters. Sundaily. Modezone. NNB. Coffee. Game News. FrontStreet. GGAMEN
© 2024 shulou.com SLNews company. All rights reserved.