Quantcast
Channel: Backup and restore
Viewing all 6640 articles
Browse latest View live

Re: M2.9 Restoring a course onto new server, student names + Data

$
0
0
by barbara nance.  

Hi

Many thanks for the reply:

Have been going through the names/email addresses etc and have found that its not always the college email address student +data that was missing, but have (as you suggest) found by going through one at a time ! there was small errors and a mismatch.  I have sorted most but not all and a lesson about restoring a course +data onto a new server!

Cheers

Barbara


Re: Manual backup with user info

$
0
0
by Tony Box.  

I'm having this same issue. I'm the main site administrator and I'm not able to back up user data. I see the same thing that Inbar sees.

I turned on debugging and went through the backup process--here is what I see, from beginning to end:

[Fri Aug 21 09:47:39 2015] [error] [client 10.10.1.162] instantiating backup controller 8bbeccae25832454c5a652a52b47f733, referer: https://learningarchive.up.edu/moodle/course/view.php?id=10984

[Fri Aug 21 09:47:39 2015] [error] [client 10.10.1.162] setting controller status to 100, referer: https://learningarchive.up.edu/moodle/course/view.php?id=10984

[Fri Aug 21 09:47:39 2015] [error] [client 10.10.1.162] loading controller plan, referer: https://learningarchive.up.edu/moodle/course/view.php?id=10984

[Fri Aug 21 09:47:40 2015] [error] [client 10.10.1.162] setting controller status to 300, referer: https://learningarchive.up.edu/moodle/course/view.php?id=10984

[Fri Aug 21 09:47:40 2015] [error] [client 10.10.1.162] applying plan defaults, referer: https://learningarchive.up.edu/moodle/course/view.php?id=10984

[Fri Aug 21 09:47:40 2015] [error] [client 10.10.1.162] setting controller status to 400, referer: https://learningarchive.up.edu/moodle/course/view.php?id=10984

[Fri Aug 21 09:47:40 2015] [error] [client 10.10.1.162] checking plan security, referer: https://learningarchive.up.edu/moodle/course/view.php?id=10984

[Fri Aug 21 09:47:40 2015] [error] [client 10.10.1.162] setting controller status to 500, referer: https://learningarchive.up.edu/moodle/course/view.php?id=10984

[Fri Aug 21 09:47:40 2015] [error] [client 10.10.1.162] checking plan security, referer: https://learningarchive.up.edu/moodle/course/view.php?id=10984

[Fri Aug 21 09:47:40 2015] [error] [client 10.10.1.162] checking plan security, referer: https://learningarchive.up.edu/moodle/course/view.php?id=10984

[Fri Aug 21 09:47:40 2015] [error] [client 10.10.1.162] checking plan security, referer: https://learningarchive.up.edu/moodle/course/view.php?id=10984

[Fri Aug 21 09:47:40 2015] [error] [client 10.10.1.162] saving controller to db, referer: https://learningarchive.up.edu/moodle/course/view.php?id=10984

[Fri Aug 21 09:47:40 2015] [error] [client 10.10.1.162] calculating controller checksum cffa9cb3a55140aec0d83b0e718a9660, referer: https://learningarchive.up.edu/moodle/course/view.php?id=10984

[Fri Aug 21 09:48:14 2015] [error] [client 10.10.1.162] loading controller from db, referer: https://learningarchive.up.edu/moodle/backup/backup.php?id=10984

[Fri Aug 21 09:48:14 2015] [error] [client 10.10.1.162] checking plan security, referer: https://learningarchive.up.edu/moodle/backup/backup.php?id=10984

[Fri Aug 21 09:48:14 2015] [error] [client 10.10.1.162] checking plan security, referer: https://learningarchive.up.edu/moodle/backup/backup.php?id=10984

[Fri Aug 21 09:48:14 2015] [error] [client 10.10.1.162] checking plan security, referer: https://learningarchive.up.edu/moodle/backup/backup.php?id=10984

[Fri Aug 21 09:48:14 2015] [error] [client 10.10.1.162] saving controller to db, referer: https://learningarchive.up.edu/moodle/backup/backup.php?id=10984

[Fri Aug 21 09:48:14 2015] [error] [client 10.10.1.162] calculating controller checksum 0252e12b6f6afc4d13162202c827693c, referer: https://learningarchive.up.edu/moodle/backup/backup.php?id=10984

[Fri Aug 21 09:48:23 2015] [error] [client 10.10.1.162] loading controller from db, referer: https://learningarchive.up.edu/moodle/backup/backup.php

[Fri Aug 21 09:48:23 2015] [error] [client 10.10.1.162] checking plan security, referer: https://learningarchive.up.edu/moodle/backup/backup.php

[Fri Aug 21 09:48:23 2015] [error] [client 10.10.1.162] checking plan security, referer: https://learningarchive.up.edu/moodle/backup/backup.php

[Fri Aug 21 09:48:23 2015] [error] [client 10.10.1.162] checking plan security, referer: https://learningarchive.up.edu/moodle/backup/backup.php

[Fri Aug 21 09:48:23 2015] [error] [client 10.10.1.162] saving controller to db, referer: https://learningarchive.up.edu/moodle/backup/backup.php

[Fri Aug 21 09:48:23 2015] [error] [client 10.10.1.162] calculating controller checksum 0252e12b6f6afc4d13162202c827693c, referer: https://learningarchive.up.edu/moodle/backup/backup.php

[Fri Aug 21 09:48:33 2015] [error] [client 10.10.1.169] loading controller from db, referer: https://learningarchive.up.edu/moodle/backup/backup.php

[Fri Aug 21 09:48:33 2015] [error] [client 10.10.1.169] checking plan security, referer: https://learningarchive.up.edu/moodle/backup/backup.php

[Fri Aug 21 09:48:33 2015] [error] [client 10.10.1.169] checking plan security, referer: https://learningarchive.up.edu/moodle/backup/backup.php

[Fri Aug 21 09:48:33 2015] [error] [client 10.10.1.169] setting controller status to 700, referer: https://learningarchive.up.edu/moodle/backup/backup.php

[Fri Aug 21 09:48:33 2015] [error] [client 10.10.1.169] saving controller to db, referer: https://learningarchive.up.edu/moodle/backup/backup.php

[Fri Aug 21 09:48:33 2015] [error] [client 10.10.1.169] calculating controller checksum af291596fa70831224c62fef1f9ec4b9, referer: https://learningarchive.up.edu/moodle/backup/backup.php

[Fri Aug 21 09:48:33 2015] [error] [client 10.10.1.169] loading controller from db, referer: https://learningarchive.up.edu/moodle/backup/backup.php

[Fri Aug 21 09:48:33 2015] [error] [client 10.10.1.169] setting controller status to 800, referer: https://learningarchive.up.edu/moodle/backup/backup.php

[Fri Aug 21 09:48:50 2015] [error] [client 10.10.1.169] setting controller status to 1000, referer: https://learningarchive.up.edu/moodle/backup/backup.php

[Fri Aug 21 09:48:50 2015] [error] [client 10.10.1.169] saving controller to db, referer: https://learningarchive.up.edu/moodle/backup/backup.php

Looks like a lot of errors although I'm not sure if any are out of the ordinary?

Thanks,

Tony

Re: Userdata does not get backed up using manual backups

$
0
0
by Tony Box.  

Thanks for linking to that other post, Jerry. I just added my own info to it.

Hopefully we can figure this out!

Re: Manual backup with user info

$
0
0
by Ken Task.  

@Tony ...

Did you check system defaults for backups to make sure user data is not locked out?

What version of Moodle?   Got command line access? In moodlecode/admin/cli/ there is a script called 'backup.php'.  Execute like: php backup.php --courseid=[CID] --destination=/home/m26backups/

Have any clues in moodledata/temp/backup/?   Any larger than 0 byte .log file contains info that might provide a clue.

'spirit of sharing', Ken

Restore with only moodle, moodledata, \var\lib\mysql, and \etc\mysql

$
0
0
by Eric Messick.  

I messed up Ubuntu upgrade 14.10 to 15.04 running Moodle 2.8.7. Didn't backup mysql with mysqldump. Can I install Moodle 2.8.7 onto a new VPS with Ubuntu 14.10 and restore using the 4 directories I did back up (before knowing how to do it properly)? They are:

\var\lib\mysql (contains moodle, mysql, and performance_schema directories and 6 files like ib_logfile0...)

\etc\mysql (contains conf.d and mysql.conf.d directories and 6 files like mysql.cnf...)

moodle

moodledata

VPS, stuffed. Can only access with serial console and I get 'The following packages have unmet dependencies' errors for my mysql-server-5.6 and also have other problems...have spent hours trying to fix so hope that I can just restore to a new server with the backup dirs that I have.

Thanks. Eric

Re: Restore with only moodle, moodledata, \var\lib\mysql, and \etc\mysql

$
0
0
by Ken Task.  

Ouch!  That hurts!

First, in Linux, the directory slashes lean the other way. ;)

Am thinking that what you have will work on 15.04 and it's probably advisable as 14.10 has reached end of life, has it not?

So install a fresh 15.04 first and get the parts that make Moodle go installed ... php, mysql, apache and running first.

On the DB step ... I'd shut down the mysqld on the new server before copying the raw moodle DB files to new server.

From the /var/lib/mysql backup you have only the 'moodle' directory contains the DB files you need.  The others should be already be created on the new server by that environment.  The moodle directory and files contained therein needs to have the same ownerships/permissions as you see the other newly created directories/files ... say the 'mysql' ... on the new server.   *** I'd also run mysql_upgrade as your moodle DB from old server might not be the same MySQL version as on new.

You could copy the php.ini, apache.conf, mysql.cnf files to new server, but I wouldn't use them ... use them only for reference the tweaks you might have added to them.  Let new server gen those.

The other directories you have 'moodle' is the code and could be placed in apache root.  moodledata in the same location on new server as on old.   Ownerships and permissions would have to be reset as the method you use to copy to new server will probably tag all files/folders as root user.

Check the config.php file of the moodle code and make appropriate changes.

Once you get everything in place ... mysqld restarted ... mysql_upgrade run, tweaks to PHP and Apache made and apache started ,etc. then check via browser of another workstation.

Oh, yeah ... DNS changes.   Don't forget that.  The new server should use the same FQDN as the old server so you don't have to search/replace all the URL's in the Moodle that had entries in the DB pointed to the FQDN.

Best of luck!!!

'spirit of sharing', Ken


Re: Restore with only moodle, moodledata, \var\lib\mysql, and \etc\mysql

$
0
0
by Eric Messick.  

Hi, thanks Ken. I hope my coding is a bit better than my slashing.

Cheers for your help. I did heaps of reading and experimenting. Got a new Moodle 2.8 running on Ubuntu 14.10 (only because that's what I had when things fell apart). Followed your instructions and copied over moodle, moodledata, /var/lib/mysql/moodle. Getting:

Config table does not contain version, can not continue, sorry.

It is usually not possible to recover from errors triggered during installation, you may need to create a new database or use a different database prefix if you want to retry the installation.

The error is:

The most likely cause of this error is that the 'version' key is missing from your configuration dictionary.

Steps to fix:

    • Open <moodleinstalldir>/version.php
    • Find the value in $version
    • Open 'mdl_config' in database manager
    • Insert key after last entry with name = 'version' and value = <value found in version.php>


I'm just about there...I have my version but I don't know how to open mdl_config and insert a key and not sure how to use database manager. It must be easy, I just never did it. Anybody have ideas?

 



Re: Restore with only moodle, moodledata, \var\lib\mysql, and \etc\mysql

$
0
0
by Ken Task.  

To help with the DB, you could install phpmyadmin.

Not sure about workbench, don't use it, but ... mysql command line

at mysql> prompt (which means you've logged onto to mysql as superuser)
The mysql> below is the prompt in mysql NOT to be included in issuing queries/commands.
The () are comments ... NOT to be included in issuing queries/commands.
The ';' at the end of the command IS required.

mysql> use moodle; (the db for your moodle)

mysql> select name,value from mdl_config where name='version';

Should render the version the DB knows about:

+---------+---------------+
| name    | value         |
+---------+---------------+
| version | 2014111007.02 |
+---------+---------------+

From command line in moodle code directory:

fgrep '$version' version.php

should show a line like:

$version  = 2014111007.02;              // 20141110      = branching date YYYYMMDD - do not modify!

The two must match.

If there is no reference in the mdl_config table for the value 'version', it might indicate tip
of the iceberg with issues concerning DB.   During initial installation of a site, that's one of the
first values inserted into that table.

Command to insert:

INSERT INTO mdl_config (name,value) VALUES ('version','2014111007.02');

where the version number is the version number seen in config.php.

The directions you found say to insert a record in the DB/table mdl_config and the 'key' they refer to
is the value above for $version.

Those directions also suggest that if the above doesn't work for you to go to the
forum:
https://moodle.org/mod/forum/view.php?id=28
which is the installation forum ... Uhhh, we are not installing, we are basically migrating a site
from old server to new server.

So am not sure it's an 'installation' issue.

So let's check some things:
in /var/lib/mysql what does a ls -ld moodle look like?
Like this?

drwx------ 2 mysql mysql 20480 Aug 17 06:38 moodle

above shows the owner [user] (the first mysql above) has read,write, execute permissions on the DB (moodle).

To assure that:

chmod u+rwx moodle

chmod ug+rw moodle/* -R

chmod o-rwx moodle/* -R

How about all files contained in moodle

ls -lR moodle

All files should have owner: mysql and group: mysql + read/write for both of those.

-rw-rw---- 1 mysql mysql   8618 Feb 14  2015 mdl_config.frm

Did you run mysql_upgrade?
You're really not upgrading the db but what that does is check all tables of all DB's.
You might have to use the --force option when issuing mysql_upgrade

mysql_upgrade -u root -p[password] --force

How, specifically, did you get the moodle DB directory/folder/files from old server to new server?

'spirit of sharing', Ken


Re: Restore with only moodle, moodledata, \var\lib\mysql, and \etc\mysql

$
0
0
by Eric Messick.  

Thanks for such clear instructions. Checked my server's moodle version in version.php, it's 2014111007.08.

When I issue, "select name,value from mdl_config where name='version';" at mysql prompt, I get, "ERROR 1146 (42S02): Table 'moodle.mdl_config' doesn't exist." Same for, "INSERT INTO mdl_config (name,value) VALUES ('version','2014111007.08');" 

When I issue, "show tables;" I get 328 rows. Top few pasted below. One of the tables is definitely mdl_config.

I tried, "select * from mdl_config;" and tried with a few other tables and get the same ERROR 1146 (42S02), table doesn't exist.


+----------------------------------+

| Tables_in_moodle                 |

+----------------------------------+

| mdl_assign                       |

| mdl_assign_grades                |

| mdl_assign_plugin_config         |

| mdl_assign_submission            |

| mdl_assign_user_flags            |

| mdl_assign_user_mapping          |

| mdl_assignfeedback_comments      |

| mdl_assignfeedback_editpdf_annot |

Permissions OK. Table names match file names from the 328 .frm files in /var/lib/mysql/moodle. That folder also has db.opt. The .frm files are mostly 9kb with some up to 18kb. Biggest is mdl_user.frm at 27kb. Entire folder is 2.86MB. The moodledata folder was 924MB and moodle folder, 507MB. My site was under 10 users.

I ran mysql_upgrade and I get the same "Table 'XXXX' doesn't exist" for all the tables in moodle.

This mess happened because during my Ubuntu upgrade from 14.10 to 15.04 I got disconnected and I couldn't restart the upgrade (and didn't know that the DB was NOT in moodledata...so my backups might be useless).

Tried to fix by following some online advice for hours...was having some kind of dependency problems. During that time I copied over the moodle DB folder to my pc via SFTP. I thought I had backed up properly so I then tried a few more things for hours and eventually purge and autoremove. Rebooted server, couldn't get in through anything but serial console. Got a copy of my entire directory and files before rebuilding server and moodle DB not in copy.

It's possible I messed up the DB when I was trying to fix my Ubuntu upgrade and before I copied over the DB folder. Or it got messed up during the upgrade.

Looking grim. I ran this at one point...maybe did something like it before copying over the DB. 

$ sudo apt-get --yes autoremove --purge mysql-server-5.5

$ sudo apt-get --yes autoremove --purge mysql-client-5.5

$ sudo apt-get --yes autoremove --purge mysql-common

$ sudo rm -rf /var/lib/mysql /etc/mysql ~/.mysql

Is there any hope? At least I've learned a lot...

Re: Restore with only moodle, moodledata, \var\lib\mysql, and \etc\mysql

$
0
0
by Eric Messick.  

Is it possible that upgrade to ubuntu 15.04 changed the moodle database to use the ibdata1 file instead of heaps of .ibd files? My fresh moodle on ubuntu 14.10 has .frm files and .ibd files.

In my backed up \var\lib\mysql directory I have a debian-5.5.flag and also a debian-5.6.flag, guessing this was part of upgrading of mysql from 5.5 to 5.6? The ibdata1 file is about 60mb.

Maybe my database was converted to mysql 5.6 just before I saved it and I'm trying to run it on 5.5?


Re: Restore with only moodle, moodledata, \var\lib\mysql, and \etc\mysql

$
0
0
by Ken Task.  

Googling for that error begets many postings ...

https://www.google.com/search?q=mysql+ERROR+1146+%2842S02%29&ie=utf-8&oe=utf-8

The DB files you have should have been InnoDB.
And the only folder you copied is the 'moodle', correct?

Before you move the moodle files into the area for mysql to access,
get mysql installed ... all the way.   There are no DB's except the
ones that MySQL needs to function.
mysql_install_db

Shutdown mysqld.

/sbin/service mysqld stop
(or however you do that on Ubuntu).

Then copy the moodle directory/files/ into the location of the other DB's.
Check ownerships/permissions on the folder moodle and the files contained
therein.  MySQL has Innodb engine and my.cnf has Innodb references.

Start mysql forcing recovery:

https://dev.mysql.com/doc/refman/5.0/en/forcing-innodb-recovery.html

Then restart MySQL
/sbin/service mysqld restart

See:
http://serverfault.com/questions/449201/recover-mysql-database-mysql-mysqldump-gives-table-database-tablename-doe

http://stackoverflow.com/questions/7759170/mysql-table-doesnt-exist-but-it-does-or-it-should/11696069#11696069

Others have had similar issues and managed to fix it, so don't give up yet. ;)

I've not had such an issue before ... but then again, I move DB's via SQL dumps ... not raw file copy.

'spirit of sharing', Ken

Re: Restore with only moodle, moodledata, \var\lib\mysql, and \etc\mysql

$
0
0
by Ken Task.  

Adding too ... specifics ... what I think I'd try ...

#2
Can you run mysqldump on the moodle DB right now?

mysqldump -u root -p moodle > moodletoedit.sql

Then drop the database.
mysql> drop database moodle;

Copy the moodletoedit.sql to moodletoimport.sql
cp moodletoedit.sql moodletoimport.sql

Then edit moodletoimport.sql with a text editor.  I like nano.

nano moodletoimport.sql

At the top you should see the distribution version of MySQL/mysqldump

See if the engine is set to innodb
Do a find in nano for 'ENGINE=' (case sensitive).

If you see the ENGINE is something other than InnoDB, do a global search/replace
for ENGINE=other and replace with ENGINE=InnoDB

The references you see to character_set should be utf8.

After making those changes, import the edited sql dump into a new moodle DB.

mysql> create database moodle character set utf8 character set utf8_general_ci;
mysql> \q

Then import

mysql -u root -p moodle < moodletoimport.sql

Fingers crossed!

Now for community ... OK, am not a MySQL expert by any means ... know this entire thread is about DB really and NOT Moodle code, but it is directly related.   So any community member who has more expertise at MySQL than I (am really NOT a certified DB admin type, just a Moodle user) please feel free to share your expertise ... just this once! ;)

'spirit of sharing', Ken

*correction* - Re: Restore with only moodle, moodledata, \var\lib\mysql, and \etc\mysql

$
0
0
by Ken Task.  

above where is says:

mysql> create database moodle character set utf8 character set utf8_general_ci;

should be:

mysql> create database moodle character set utf8 collate utf8_general_ci;

Ken

Backup redirects to restore page

$
0
0
by Mike Algozzine.  

After backing up a course and clicking Continue, users are redirected to the backup/restorefile.php page. If they don't have the "Restore courses" moodle/restore:restorecourse capability, they get the following error:

Sorry, but you do not currently have permissions to do that (Restore courses)

The backup is apparently successful, but the error is disconcerting and not being able to access the restorefile.php page apparently prevents the user from downloading the backup file they just created. This presents a problem in custom roles that allow backups, but not restores. Has any consideration been given to removing this "Restore courses" dependency from the backup process? Are there workarounds in the meantime?

Thanks in advance.

2.9 course backup seems to stall

$
0
0
by Ken Russell.  

I am working in a freshly upgraded moodle, 2.9.1+. I have a pretty large course that I need to back up. When I I start the procedure everything works and then it seems to stall at the end--the process stalls at 99.66% complete, it appears to keep running (the blue bar is doing its sripy thing) but it stays that way and the backup does not complete (I have waited for at least an hour with it stuck at 99.66%). I read that there can be an issue with courses over 4 GB, but I don't think this course is anywhere near that large (how would I tell?). I had the same problem with backing up this course with moodle v2.5, but thought that upgrading (which I planned to do anyway) might solve the problem. It hasn't.

I'm stuck at this point, I don't know what to do to get this to work and I am under some time pressure with school starting, I would be very appreciative to hear of any suggestions fellow moodlers might have.

Thanks very much!


2.9 Course Backup DDL Error

$
0
0
by Graham Moir.  


I have a clean 2.9+ site with a single course on it.  Thought it would be a good idea to back the course up, so I chose the backup option in Course Administration and went through the option screens, but at the crunch point, the process fails with:


DDL sql execution error

Debug info: Access denied for user 'xxxxxxx' to database 'ddddddd'
CREATE TEMPORARY TABLE mdl_backup_ids_temp
etc...

This is clearly a permissions/access issue, but I'm logged in as an administrator, the username is the root MySQL user and the site plus course are running fine without similar problems elsewhere, so what's different that would be causing the backup to fail?

thanks

Re: 2.9 course backup seems to stall

$
0
0
by Ken Task.  

In 2.9.x the backup routine is supposed to be using the new tar.gz format for building the .mbz backup.  Supposedly getting around the 4+Gig limit.  Issues still remain ... but those might be operating system issues and therefore nothing Moodle can do to override that.

So the fact it got to the very end is a good sign.  The very last thing the routine does is *copy* the built .mbz file to a destination according to backup settings ... which means to the moodle file system, a designated directory (which you must create and set owerships/permissions upon), or both.  It's that *copy'* that is culprit ... on a CentOS 5,6, or 7 boxen.

But ... like I said, 'good sign' ... but it means you have to use whatever you have to browse files.

Check the moodledata/temp/backup/ directory.

If you see a directory with a long content hash name ... bunch of letters and numbers ... change into it and see what files reside there.   If you see a .mbz file, there's a good chance that is a valid backup and moodle/system couldn't *copy* it to the destination.

You should be able to *move* it to where ever you like on your system.  Notice I said *move*.

Now downloading and then attempting to restore it also means other strategies ... like file system repository where one can FTP/SCP (upload) a large backup into a position where Moodle can see it at the beginning of the restore routine.

'spirit of sharing', Ken



Re: 2.9 Course Backup DDL Error

$
0
0
by Ken Task.  

That looks to be a MySQL error.  User defined in config.php doesn't have sufficient access rights to *create* a temporary table.   Those access rights are contained in the mysql DB of the DB server.  It has nothing to do with how one is logged onto Moodle.

If remotely hosted, contact ticket system/helpdesk.

'spirit of sharing', Ken

Re: 2.9 course backup seems to stall

$
0
0
by Tim Hunt.  

The progress bar during backup suffers from the same problem as progress bars during all complex operations.

To give a massively simplified example, suppose that doing a backup only required these three steps:

  1. Step 1
  2. Step 2
  3. Step 3

And stuppose that normally steps 1 & 2 are slow, and 3 is quick.

Then, in the overall progress bar that shows the progress of the backup, you might make Step 1 and step 2 each represented by 45% of the progress bar, and step 3 be the last 10%.

However, in any given course, the actual times may not break down like that, if the course is unusual. E.g. we might zoom through the first 45% of step 1, then go slower in step 2 and really grind to a halt in step 3.

Of course the real backup is much more complex that this. There are many separate stages, and I don't know how much of the progress bar each one takes. However, what is probably going on is that for your corse, one step at the end that is normally really quick is getting bogged down.

I can't think of an easy way to find out what step that might be.

Re: Moodle 2.9: Restore - Error connecting to the server

$
0
0
by Graham Moir.  

Thanks for replying Emma.  Both sites are on Moodle 2.9 and there's no limit on the file upload on the target site.

I suspect a timeout too, and I'm looking for ways around that, - the 'experimental' route could be one of them.

Viewing all 6640 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>